Integrando Mailchimp con tu web o aplicación mediante API Rest

10-03-2017
 
Mailchimp Logo

Mailchimp Logo

Mailchimp es el sistema para envío de newsletters mas usado del mercado. Dispone de plugins para conectarse con centenares de aplicaciones. En este post voy a explicar como lo haríamos para integrar Mailchimp con nuestra aplicación(En este caso con PHP y Curl).

Mailchimp dispone de una API Rest muy potente, la podéis consultar en el siguiente enlace. Para insertar registros en una lista de mailchimp primero deberemos tener claras tres cosas:

1) El servidor donde se guardan nuestros datos, lo encontraremos en la URL del panel de control de mailchimp(También se encuentra al final de la API Key):

Mailchimp Server URL

Mailchimp Server URL

2) Nuestra API Key, que nos servirá para autenticarnos ante Mailchimp. La podemos encontrar en “Panel de control” > “Account” > “Extras” > “API Keys”.

3) El ID de la lista de mailchimp queremos insertar los datos. La podremos encontrar en “Lista” > “Settings” > “List name and defaults”

Insertar un registro en mailchimp

Ahora que ya lo tenemos todo claro si queremos insertar un registro en Mailchimp a través de su API Rest usando PHP y Curl podemos hacerlo con este simple script:

$datetime=date("d-m-Y H:i:s");

$server="xxxx";
$listid="xxxxxxxx"; 
$apikey="xxxxxxxxxxxxxxxxxxxxxx-xxxx";

$auth = base64_encode( 'user:'.$apikey );

$data = array(
	'apikey'        => $apikey,
	'email_address' => $mail,
	'status'        => 'subscribed',
	'merge_fields'  => array(
		'FNAME' => utf8_encode( $fname ),
		'CAMPO_PERSONALIZADO_1' => utf8_encode( $campoPersonalizado1 ),
		'CAMPO_PERSONALIZADO_2' => utf8_encode( $campoPersonalizado2 ),
		'CAMPO_PERSONALIZADO_3' => utf8_encode( $campoPersonalizado3 )
		)
	);

$json_data = json_encode($data);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://'.$server.'.api.mailchimp.com/3.0/lists/'.$listid.'/members/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Authorization: Basic '.$auth));
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);

$response = curl_exec($ch);

En fin, espero que os sea útil y buen fin de semana.

Leave a Reply

© Albert Coronado Calzada