Esta es una biblioteca PHP para interactuar con la versión 3.0 de la API de MailChimp.
Esta biblioteca supone un conocimiento básico de la aplicación MailChimp y sus funciones asociadas.
Para ejecutar Composer:
composer require jhut89/mailchimp3php
Alternativamente, puede agregar una línea requerida a su proyecto composer.json
para el paquete jhut89/mailchimp3php
.
Luego ejecute composer update
y agregue el cargador automático del compositor a su proyecto con:
require " vendor/autoload.php " ;
Luego puedes usar una declaración use para incorporar la clase Mailchimp:
use MailchimpAPI Mailchimp ;
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
Para crear una instancia, necesitará una nueva instancia de la clase Mailchimp
con la clave API de su cuenta MailChimp como único argumento.
Si está utilizando OAuth para obtener un token de acceso, esta biblioteca puede manejar el "apretón de manos" por usted.
Primero debes enviar al usuario a tus aplicaciones authorize_uri
. Puedes obtener esta URL llamando a Mailchimp::getAuthUrl()
estáticamente:
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url );
Opcionalmente, si necesita pasar información de estado junto con su solicitud para que la respuesta de devolución de llamada se pueda enrutar correctamente, puede incluir un parámetro de estado:
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
// state information encoded into a string to be included in the URL, for example data encoded in a JWT token
$ state = ' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url , $ state );
Desde allí, el usuario ingresará su nombre de usuario y contraseña para aprobar su solicitud y será redirigido al redirect_uri
que configuró junto con un code
.
Con ese code
ahora puedes solicitar un token de acceso a mailchimp. Para esto necesitarás llamar estáticamente al método Mailchimp::oauthExchange()
así:
$ code = ' abc123abc123abc123abc123 ' ;
$ client_id = ' 12345676543 ' ;
$ client_secret = ' 789xyz789xyz789xyz789xyz ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: oauthExchange ( $ code , $ client_id , $ client_secret , $ redirect_url );
Si el protocolo de enlace es exitoso, este método devolverá una cadena que contiene su clave API como esta: 123abc123abc123abc123abc123abc-us0
. Esta clave API ahora se puede utilizar para crear una instancia de su clase Mailchimp
como lo hicimos anteriormente.
Una vez que haya creado una instancia de la clase Mailchimp
puede comenzar a crear solicitudes. La construcción de solicitudes se realiza 'encadenando' métodos a la instancia $mailchimp
. En la mayoría de los casos, esta 'cadena' terminará con el verbo HTTP de su solicitud.
Un ejemplo de cómo recuperar una colección de listas:
$ mailchimp
-> lists ()
-> get ();
Se puede recuperar una instancia proporcionando un identificador único para la instancia que desea como argumento para el método apropiado. Por ejemplo, si quisiera recuperar una instancia de lista del ejemplo anterior, simplemente pasaría list_id
como único argumento para el método lists()
. Como esto:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> get ();
Los métodos disponibles para cada posición en la cadena dependen de lo que devuelve el método anterior. Por ejemplo, si quisiera recuperar suscriptores de una lista en mi cuenta, haría lo siguiente:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ();
Observe que proporcioné un list_id
al método lists()
, ya que no habría forma de recuperar una lista de suscriptores de una colección de listas. Sin embargo, la solicitud anterior solo devolverá 10 instancias de suscriptores de la colección de miembros. Esto se debe a que la API de MailChimp usa paginación (documentada AQUÍ) que por defecto es count=10
y offset=0
. Esta biblioteca le permite modificar los parámetros de la cadena de consulta pasándolos como argumento al método GET()
. Hacemos esto proporcionando una matriz de pares clave-valor donde las claves son el parámetro de consulta que desea proporcionar/alterar y su valor es el valor del parámetro. Como ejemplo, si quisiera recuperar los segundos 100 suscriptores de mi lista, podría:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ([
" count " => " 100 " ,
" offset " => " 100 "
]);
Esto equivaldría a realizar una solicitud de obtención contra:
Https://us0.api.mailchimp.com/3.0/lists/1a2b3c4d/members?count=100&offset=100
Yendo un poco más allá, podemos recuperar un único miembro de la lista proporcionando el members_hash
(hash md5 de dirección en minúscula) al método members()
. Como esto:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' 8bdbf060209f35b52087992a3cbdf4d7 ' )
-> get ();
Alternativamente, en lugar de proporcionar un hash md5 como identificador de la función members()
, puede proporcionar la dirección de correo electrónico de un contacto como una cadena y esta biblioteca hará el hash por usted. Como esto:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' [email protected] ' )
-> get ();
Puede leer más sobre las solicitudes
GET
aquí: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Get-Requests
Si bien poder recuperar datos de su cuenta es excelente, también necesitamos poder publicar datos nuevos. Esto se puede hacer llamando al método POST()
al final de una cadena. Como ejemplo, suscribir una dirección a una lista se vería así:
$ post_params = [
' email_address ' => ' [email protected] ' ,
' status ' => ' subscribed '
];
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
En este caso, no proporcionaría a members()
un identificador porque quiero publicarlo en su colección. Observe también que los datos de la publicación son una matriz de pares clave-valor que representan los parámetros que quiero pasar a la API de MailChimp. Asegúrese de proporcionar todos los campos obligatorios para el punto final en el que está publicando. Consulte la documentación de MailChimp para conocer los parámetros necesarios. Los parámetros no obligatorios simplemente se pueden agregar a los datos de la publicación y MailChimp ignorará los que no se puedan utilizar. A continuación se muestra un ejemplo de cómo agregar un suscriptor a una lista con algunos parámetros no obligatorios:
$ merge_values = [
" FNAME " => " John " ,
" LNAME " => " Doe "
];
$ post_params = [
" email_address " => " [email protected] " ,
" status " => " subscribed " ,
" email_type " => " html " ,
" merge_fields " => $ merge_values
]
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
Puede leer más sobre las solicitudes
POST
aquí: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Post-Requests
Esta biblioteca maneja solicitudes PUT y PATCH similares a las solicitudes POST. Lo que significa que PUT()
y PATCH()
aceptan una matriz de pares clave-valor que representan los datos que desea modificar/proporcionar a MailChimp. Como ejemplo, si estuviera parcheando al suscriptor al que nos suscribimos anteriormente, para que tenga un nuevo nombre, se vería así.
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> patch ([
" merge_fields " => [ " FNAME " => " Jane " ]
]);
Puede leer en profundidad sobre las solicitudes
PATCH
yPUT
aquí: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Patch-&-Put-Requests
La eliminación de un registro de MailChimp se realiza con el método DELETE()
y se construye de manera similar a las solicitudes GET. Si quisiera eliminar el suscriptor anterior, haría:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> delete ();
Puede leer más sobre las solicitudes
DELETE
aquí: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Delete-Requests
Los métodos nombrados para verbos http como get()
, post()
, patch()
, put()
o delete()
inician una solicitud inalámbrica a la API de MailChimp. Dada una solicitud exitosa, estos métodos devuelven una instancia de MailchimpResponse
. Le sugiero que se familiarice con esta clase, ya que hay varios modificadores y captadores para diferentes partes de una respuesta.
Hay varios captadores que podemos usar para interactuar con partes de nuestra instancia MailchimpResponse
. Algunos de los más utilizados son:
$ response -> deserialize (); // returns a deserialized (to php object) resource returned by API
$ response -> getHttpCode (); // returns an integer representation of the HTTP response code
$ response -> getHeaders (); // returns response headers as an array of key => value pairs
$ response -> getBody (); // return the raw text body of the response
Como ejemplo, si poseo una clave API pero quiero que el correo electrónico de contacto esté asociado con su cuenta:
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
$ account = $ mailchimp
-> account ()
-> get ()
$ contact_email = $ account
-> deserialize ()
->email
print $ contact_email ; // outputs something like "[email protected]"
Puede leer sobre cómo trabajar con respuestas en profundidad aquí: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Handling-A-Response
mailchimp()
|
|----account()
|
|----apps()
|
|----automations()
| |
| |----removedSubscribers()
| |----emails()
| |
| |---queue()*
| |---pauseAll()*
| |---startAll()*
|
|----batches()
|
|----batchWebhooks()
|
|----campaignFolders()
|
|----campaigns()
| |
| |----cancel()*
| |----pause()*
| |----replicate()*
| |----resume()*
| |----scedule()*
| |----send()*
| |----test()*
| |----unschedule()*
| |----checklist()
| |----feedback()
| |----content()
|
|----connectedSites()
| |
| |----verifyScriptInstallation()*
|
|----conversations()
| |
| |----messages()
|
|----ecommStores()
| |
| |----customers()
| |----products()
| | |
| | |----variants()
| | |----images()
| |
| |----promoRules()
| | |
| | |----promoCodes()
| |
| |----orders()
| | |
| | |----lines()
| |
| |----carts()
| |
| |----lines()
|
|----facebookAds()
|
|----fileManagerFiles()
|
|----fileManagerFolders()
|
|----googleAds()
|
|----landingPages()
| |
| |----publish()*
| |----unpublish()*
| |----content()
|
|----lists()
| |
| |----batchSubscribe()*
| |----webhooks()
| |----signupForms()
| |----mergeFields()
| |----growthHistory()
| |----clients()
| |----activity()
| |----abuseReports()
| |----segments()
| | |
| | |----batch()*
| | |----members()
| |
| |----members()
| | |
| | |---notes()
| | |---goals()
| | |---activity()
| | |---tags()
| |
| |----interestCategories()
| |
| |----interests()
|
|----ping()
|
|----reports()
| |
| |----unsubscribes()
| |----subReports()
| |----sentTo()
| |----locations()
| |----emailActivity()
| |----googleAnalytics()
| |----openDetails()
| |----eepurl()
| |----domainPerformance()
| |----advice()
| |----abuse()
| |----clickReports()
| |
| |----members()
|
|----searchCampaigns()
|
|----searchMembers()
|
|----templateFolders()
|
|----templates()
| |
| |----defaultContent()
|
|----verifiedDomains()
|
|----verify()
*Consulta la documentación de la API de MailChimp para saber qué verbos son apropiados y dónde.
** Los métodos marcados con un *
realizan una solicitud de red
** Esté atento a las actualizaciones y no dude en realizar una bifurcación o una solicitud de extracción. Consulte la Wiki para obtener más información sobre cómo contribuir.