Módulo member

1.Listar contatos

Serviço:

/member/list

Exclua um ou mais cintatos de uma ou várias listas de contatos filtrando-os por e-mail

Parâmetros:

ParâmetroMailListsIds
RequeridoNÃO
TipoArray
ExplicaçãoObter só membros das listas selecionadas
ExemploMailListsIds[]=125
Parâmetrocount
RequeridoNÃO
TipoNúmero Inteiro
ExplicaçãoNúmero de contatos para devolver como máximo
Exemplocount=10
Parâmetroabsolutepage
RequeridoNÃO
TipoNúmero Inteiro
ExplicaçãoPágina de "count" cadastros à que se deseja ir. Se count vale 10 e absolutepage vale 3, então começaremos a ver desde o contato 31
Exemploabsolutepage=3
Parâmetrofilter
RequeridoNÃO
TipoCadeia de caracteres
ExplicaçãoE-mail ou parte do e-mail pelo que se filtram os contatos
Exemplofilter=nombre@dominio.com
ParâmetroorderBy
RequeridoNÃO
TipoNúmero entero Cadena de caracteres
Valores posibles:
name
id
ExplicaçãoCampo pelo qual estará ordenado o listado
ExemploorderBy=name
Parâmetrodesc
RequeridoNÃO
TipoNúmero entero
Valores posibles:
0
1
ExplicaçãoCampo pelo qual estará ordenado o listado
Exemplodesc=1

Erros:

errorMsg_formValidations
Um ou vários dos parâmetros de entrada é incorreto, falta ou é solicitado. Tem associada uma entrada do tipo "Parámetro inválido"=>"error"
errorMsg_membersNotFound
Não foi possível recuperar os contatos.

Estrutura de Saída:

list.item.MemberID
ID do contato
list.item.Email
E-mail do contato
list.item.BounceType
Tipo de bounce [1=Bounce Duro|2=Bounce Blando|3=Sem Bounces]
list.item.MailLists.activeCount
Número de listas nas que está relacionado o membro
list.item.MailLists.item.MailListID
ID de lista de contatos
list.item.MailLists.item.SubscriptionStatus
Estado de cadastro do membro da lista
list.item.MailLists.item.MailListName
Nome da lista
list.item.CustomFields.item.CustomField<1..100>
Campos personalizados do membro
list.pager.absolutepage
Página que se está mostrando
list.pager.pagecount
Número total de páginas
list.pager.totalCount
Número total de cadastros
list.pager.rowCount
Número de cadastros como máximo por página
customfields
Listado de campos personalizados criados pelo administrador
customfields.rows.CustomFieldID
IDs de campos personalizados
customfields.rows.Title
Títulos de campos personalizados
criteria.filter
Filtro inserido como parâmetro

** só os campos relevantes são explicados e numerados

2.Criar ou Alterar a informação de um Contato

Serviço:

/member/edit

Recupere, Crie ou Altere a informação de um contato.

Este serviço se comporta de formas diferentes dependendo da forma em que realizamos a chamada. Caso façamos através de GET e passamos o parâmetro MemberID, tentará recuperar a informação so contato. Caso utilizemos POST, tentará alterar ou criar o contato dependendo de se estiver ou não definido o parâmetro MemberID

Parâmetros:

ParâmetroMemberID
RequeridoNÃO
TipoNúmero Inteiro
ExplicaçãoID do contato que se deseja alterar. Só necessário se deseja recuperar a informação ou alterar o contato.
ExemploMemberID=2
ParâmetroMailListID
RequeridoNÃO
TipoNúmero Inteiro
ExplicaçãoLista na qual será cadastrado inicialmente o contato. Só uma lista deve ser designada.
ExemploMailListID=4
ParâmetroEmail
RequeridoNÃO
TipoCadeia de caracteres
ExplicaçãoEndereço de correio que deseja cadastrar
ExemploEmail=rogelio@donweb.com
ParâmetroCustomField<1..100>
RequeridoNÃO
TipoArreglo de cadena
ExplicaçãoValores para cada campo personalizado. A parte numérica do parâmetro é o ID do campo personalizado "CustomFieldID"
ExemploCustomField1=rogelio&CustomField3=hombre&CustomField5=argentina

Erros:

errorMsg_formValidations
Um ou vários dos parâmetros de entrada são incorretos, faltam ou são solicitados
errorMsg_memberNotFound
Não foi possível encontrar o membro a alterar. Só pode aparecer durante a alteração.
errorMsg_memberNotSaved
Não foi possível salvar o contato por um erro inesperado
errorMsg_memberBanned
Não foi possível cadastrar o contato na lista porque o e-mail está proibido

Estrutura de Saída:

member.MemberID
ID do contato
member.Email
E-mail do contato
member.CustomFields
member.CustomFields.item.CustomField<1..100>

Campos personalizados do membro

** Só os campos relevantes são explicados e numerados.

3.Alterar estado de um Contato (Cadastrar, Descadastrar, Des-associar, etc.)

Serviço:

/member/changestaus

Altere o estado de um ou mais contatos em relação a uma lista ou mais listas

Parâmetros:

ParâmetroMemberIds
RequeridoSIM
TipoArray de inteiros
ExplicaçãoTodos os IDs de contatos aos que se deseja alterar o estado.
ExemploMemberIds[]=1&MemberIds[]=2
ParâmetroMailListsIds
RequeridoSIM
TipoArray de inteiros
ExplicaçãoTodas as listas de contatos com as que deseja operar.
ExemploMailListsIds[]=4&MailListsIds[]=9
ParâmetroSubscriptionStatus
RequeridoSIM
TipoCadeia de caracteres
ExplicaçãoIndica el estado que se quiere asignar a los contactos.
Valores posibles:PendingOptIn (pendiente de confirmación)
Subscribed (suscripto)
Unsubscribed (desuscripto)
Deleted (remover de la lista)
ExemploSubscriptionStatus=Subscribed

Erros:

errorMsg_formValidations
Um ou vários dos parâmetros de entrada são incorretos, faltam ou são requeridos
invalidMaillist
Lista de IDs de lista de contatos inválidas. Inexistentes
invalidMember
Lista de IDs de contatos inválidos. Inexistentes
subscribed
Lista de IDs de contactos cadastrados corretamente. Este parâmetro só está presente se tiver havido um erro e está presente "notSubscribed"
notSubscribed
Lista de IDs de contatos validos NÃO cadastrados
countNotSubscribed
Quantidade de contatos não cadastrados (notSubscribed invalidMember)

Estrutura de Saída:

countChanged=number
quantidade de membros que foram alterados satisfatoriamente
changestatus
changestatus.detail
changestatus.detail.changed
array que contem uma key por cada MemberID cujo valor é um array de cada MaillistID para a qual foi alterado o estado

Exemplo:

changestatus: {
            detail: {
            changed: {
                2:["4","9"],
                1:["4","9"]
                     }
                    }
                SubscriptionStatus: "Subscribed"
                  }
            countChanged: 2

4.Descadastrar Contatos por e-mail

Serviço:

/member/unsubscribebyemail

Exclua um ou mais cintatos de uma ou várias listas de contatos filtrando-os por e-mail

Parâmetros:

Parâmetroemails
RequeridoSIM
TipoArray de cadeias
ExplicaçãoTodos os e-mails de contatos a descadastrar
Exemploemails[]=toto@tritolo.com&emails[]=juena@gmail.com
ParâmetroMailListsIds
RequeridoSIM
TipoArray de inteiros
ExplicaçãoTodas as listas de contatos à que se desejam descadastrar os MembersIds
ExemploMailListsIds[]=4&MailListsIds[]=9
Parâmetroban
RequeridoNÃO
TipoInteiro[0|1]
ExplicaçãoCrie uma regra de exclusão por cada e-mail do parâmetro e-mails
Exemploban=1

Erros:

errorMsg_formValidations
Um ou vários dos parâmetros de entrada são incorretos, faltam ou são requeridos

Estrutura de Saída:

countUnsubscribed
Número de membros cadastrados corretamente
notUnsubscribed
Array de e-mails de contatos válidos NÃO descadastrados
countNotUnsubscribed
Quantidade de contatos não descadastrados (notUnsubscribed invalidMember)

5.Exemplos úteis de implementação em PHP:

Neste exemplo vamos:

Criar um contato com e-mail=juanperez@gmail.com, nome=Juan, sobrenome=Perez e cadastrado à lista com ID = 1.

Cadastramos o contato à lista com ID = 2.

Descadastramos da lista 1 ao contato criado no passo 1

Pesquisamos o contato criado no passo 1 dentro da lista 2

Script

textarefa com o código do script member.php

Saída Script PHP

Nuevo Contacto: 19962 - juanperez@gmail.com: Juan Perez

Usuário cadastrado corretamente à lista 2

Usuário descadastrado corretamente da lista 1

El usuario 19962 - juanperez@gmail.com (Juan Perez) esta suscripto a la lista 2


<?php$baseURL = 'https://app.envialosimple.com';$apiKey = 'KEY';//Eu criar um novo contacto na lista 1$params = array();$params['APIKey']=$apiKey;$params['MailListID']=1;$params['Email']='juanperez@gmail.com';$params['CustomField1']='Juan';$params['CustomField2']='Perez';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/edit/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$id = $response['root']['ajaxResponse']['member']['MemberID'];$email = $response['root']['ajaxResponse']['member']['Email'];$nombre = $response['root']['ajaxResponse']['member']['CustomFields']['item']['CustomField1']['Values']['Option'][0]['Value'];$apellido = $response['root']['ajaxResponse']['member']['CustomFields']['item']['CustomField2']['Values']['Option'][0]['Value'];echo "Nuevo Contacto: $id - $email: $nombre $apellido \n";//Cadastramos o contato à lista com ID = 2$params = array();$params['APIKey']=$apiKey;$params['MailListsIds']=array(2);$params['MemberIds']=array($id);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/changestatus/SubscriptionStatus/Subscribed/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$exito = $response['root']['ajaxResponse']['success'];$count = $response['root']['ajaxResponse']['countSubscribed'];if($exito && $count=1){echo "Contacto suscripto correctamente a la lista 2\n";}else{echo "No se pudo suscribir correctamente a la lista 2\n";print_r($response);exit;}//Descadastrado o contato à lista 1$params = array();$params['APIKey']=$apiKey;$params['MailListsIds']=array(1);$params['MemberIds']=array($id);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/changestatus/SubscriptionStatus/Unsubscribed/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$exito = $response['root']['ajaxResponse']['success'];$count = $response['root']['ajaxResponse']['countUnsubscribed'];if($exito && $count=1){echo "Usuário descadastrado corretamente da lista 1\n";}else{echo "No se pudo desuscribir correctamente de la lista 1\n";print_r($response);exit;}//Pesquisamos o contato criado no passo 1 dentro da lista 2$params = array();$params['APIKey']=$apiKey;$params['MailListID']=2;$params['filter']='juanperez';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/listbymaillist/format/json?'.http_build_query($params));curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);foreach ($response['root']['ajaxResponse']['list']['item'] as $item){$tmpid = $item['MemberID'];$tmpemail = $item['Email'];$tmpnombre = $item['CustomFields']['item']['CustomField1']['Values']['Option'][0]['Value'];$tmpapellido = $item['CustomFields']['item']['CustomField2']['Values']['Option'][0]['Value'];echo "El Contacto $tmpid - $tmpemail ($tmpnombre $tmpapellido) esta suscripto a la lista 2\n";}?>