Módulo member

1.Listar contactos

Servicio:

/member/list

Lista todos los contactos de todas las listas filtradas por email

Parámetros:

ParámetroMailListsIds
RequeridoNO
TipoArray
ExplicaciónObtener solo miembros de las listas seleccionadas
EjemploMailListsIds[]=125
Parámetrocount
RequeridoNO
TipoNúmero Entero
ExplicaciónNúmero de contactos a devolver como máximo
Ejemplocount=10
Parámetroabsolutepage
RequeridoNO
TipoNúmero Entero
ExplicaciónPágina de "count" registros a la que se quiere ir.Si count vale 10 y absolutepage vale 3, entonces empezaremos a ver desde el contacto 31
Ejemploabsolutepage=3
Parámetrofilter
RequeridoNO
TipoCadena de caracteres
ExplicaciónEmail o parte de email por el que se filtran los contactos
Ejemplofilter=nombre@dominio.com
ParámetroorderBy
RequeridoNO
TipoNúmero entero Cadena de caracteres
Valores posibles:
name
id
ExplicaciónCampo por el cual estará ordenado el listado.
EjemploorderBy=name
Parámetrodesc
RequeridoNO
TipoNúmero entero
Valores posibles:
0
1
ExplicaciónCampo por el cual estará ordenado el listado.
Ejemplodesc=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido. Tiene asociada una estructura del tipo "Parámetro inválido"=>"error"
errorMsg_membersNotFound
No se han podido recuperar los contactos.

Estructura de Salida:

list.item.MemberID
ID del contacto
list.item.Email
Email del contacto
list.item.BounceType
Tipo de rebote [1=Rebote Duro|2=Rebote Blando|3=Sin Rebotes]
list.item.MailLists.activeCount
Número de listas en las que esta relacionado el miembro
list.item.MailLists.item.MailListID
Id de lista de contactos
list.item.MailLists.item.SubscriptionStatus
Estado de suscripción del miembro en la lista
list.item.MailLists.item.MailListName
Nombre de la lista
list.item.CustomFields.item.CustomField<1..100>
Campos personalizados del miembro
list.pager.absolutepage
Página que se esta mostrando
list.pager.pagecount
Número total de páginas
list.pager.totalCount
Número total de registros
list.pager.rowCount
Número de registros en la página
customfields
Listado de los campos personalizados creados por el administrador
customfields.rows.CustomFieldID
Ids de campos personalizados
customfields.rows.Title
Títulos de campos personalizados
criteria.filter
Filtro ingresado como parámetro

** solo los campos relevantes son explicados y enumerados

2.Crear o Modificar la información de un Contacto

Servicio:

/member/edit

Recupera, crea o modifica información de un contacto.

Este servicio se comporta de formas distintas dependiendo la forma en la que realizamos la llamada. Si lo hacemos mediante GET y pasamos el parámetro MemberID, intentara recuperar la información del contacto. Si utilizamos POST intentara modificar o crear el contacto dependiendo si esta o no definido el parámetro MemberID

Parámetros:

ParámetroMemberID
RequeridoNO
TipoNúmero Entero
ExplicaciónID del contacto que se quiere modificar. Solo necesario si se quiere recuperar la información o modificar el contacto.
EjemploMemberID=2
ParámetroMailListID
RequeridoNO
TipoNúmero Entero
ExplicaciónLista a la cual se inscribirá inicialmente el contacto. Solo una lista debe ser asignada.
EjemploMailListID=4
ParámetroEmail
RequeridoNO
TipoCadena de caracteres
ExplicaciónDirección de correo que se quiere suscribir
EjemploEmail=rogelio@donweb.com
ParámetroCustomField<1..100>
RequeridoNO
TipoArreglo de cadena
ExplicaciónValores para cada campo personalizado. La parte numérica del parámetro es el ID del campo personalizado "CustomFieldID"
EjemploCustomField1=rogelio&CustomField3=hombre&CustomField5=argentina

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrectos, faltan o son requeridos
errorMsg_memberNotFound
No se encuentra el miembro a modificar. Solo puede aparecer durante una modificación
errorMsg_memberNotSaved
El contacto no se pudo guardar por un error inesperado
errorMsg_memberBanned
El contacto no se pudo suscribir a la lista porque el email esta prohibido

Estructura de Salida:

member.MemberID
ID del contacto
member.Email
Email del contacto
member.CustomFields
member.CustomFields.item.CustomField<1..100>

Campos personalizados del miembro

** Solo los campos relevantes son explicados y enumerados.

3.Cambiar el estado un Contacto (Suscribir, Desuscribir, Des-asociar, etc)

Servicio:

/member/changestaus

Modifica el estado de uno o mas contactos en relación a una lista o mas listas

Parámetros:

ParámetroMemberIds
RequeridoSI
TipoArreglo de enteros
ExplicaciónTodos los IDs de contactos a los que se desea modificar el estado.
EjemploMemberIds[]=1&MemberIds[]=2
ParámetroMailListsIds
RequeridoSI
TipoArreglo de enteros
ExplicaciónTodas las listas de contactos co las que se desea operar.
EjemploMailListsIds[]=4&MailListsIds[]=9
ParámetroSubscriptionStatus
RequeridoSI
TipoCadena de caracteres
ExplicaciónIndica 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)
EjemploSubscriptionStatus=Subscribed

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
invalidMaillist
Lista de IDs de lista de contactos invalidas. Inexistentes
invalidMember
Lista de IDs de contactos inválidos. Inexistentes
subscribed
Lista de IDs de contactos suscritos correctamente. Este parámetro solo esta presente si hubo un error y esta presente "notSubscribed"
notSubscribed
Lista de IDs de contactos validos NO suscritos
countNotSubscribed
Cantidad de contactos no suscritos (notSubscribed invalidMember)

Estructura de Salida:

countChanged=number
cantidad de members que se han modificado satisfactoriamente.
changestatus
changestatus.detail
changestatus.detail.changed
arreglo que contiene una key por cada MemberID cuyo valor es un arreglo de cada MaillistID para la cual se ha modificado el estado

Ejemplo:

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

4.De-suscribir Contactos por email

Servicio:

/member/unsubscribebyemail

Remueve uno o mas contactos de una o varias listas de contactos filtrándolos por email

Parámetros:

Parámetroemails
RequeridoSI
TipoArreglo de cadenas
ExplicaciónTodos los email de contactos a des-suscribir
Ejemploemails[]=toto@tritolo.com&emails[]=juena@gmail.com
ParámetroMailListsIds
RequeridoSI
TipoArreglo de enteros
ExplicaciónTodas las listas de contactos a la que se quieren des-suscribir los MembersIds
EjemploMailListsIds[]=4&MailListsIds[]=9
Parámetroban
RequeridoNO
TipoEntero[0|1]
ExplicaciónCrea una regla de exclusión por cada email del parámetro emails
Ejemploban=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido

Estructura de Salida:

countUnsubscribed
Número de miembros suscritos correctamente
notUnsubscribed
Arreglo de emails de contactos validos NO des-suscritos.
countNotUnsubscribed
Cantidad de contactos no des-suscritos (notUnsubscribed invalidMember)

5.Ejemplos útiles de implementación en PHP:

En este ejemplo vamos a:

Crear un contacto con email=juanperez@gmail.com, nombre=Juan, apellido=Perez y suscripto a la lista con ID = 1.

Suscribimos el contacto a la lista con ID = 2.

Desuscribimos de la lista 1 al contacto creado en el paso 1

Buscamos el contacto creado en el paso 1 dentro de la lista 2

Script

textarea con el codigo del script member.php

Salida Script PHP

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

Usuario suscripto correctamente a la lista 2

Usuario desuscripto correctamente de la lista 1

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


<?php$baseURL = 'https://app.envialosimple.com';$apiKey = ' TU LLAVE';// Creo un nuevo contacto en la 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";//Suscricribo el contacto antes creado a la lista 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;}// De-Suscricribo el contacto antes creado de la 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 "Contacto desuscripto correctamente de la lista 1\n";}else{echo "No se pudo desuscribir correctamente de la lista 1\n";print_r($response);exit;}//Busco el contacto antes creado en la 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";}?>