2016-07-27 26 views
5

Ich versuche, meinen Code für die Anmeldung neuer Benutzer zu meinem MailChimp-Newsletter zu aktualisieren.Benutzer kann mit MailChimp API 3.0 nicht zu einer Gruppe hinzugefügt werden

Ich möchte es den Benutzer zu einer Gruppe hinzufügen, so dass ich beim Versenden von Newslettern zwischen den Benutzern unterscheiden kann. Dieser Code abonniert jedoch den Benutzer, fügt ihn jedoch keiner Gruppe hinzu. Was mache ich falsch? Ich benutze die MailChimp API 3.0.

Mein Code:

$apiKey  = 'XXXX'; 
$list_id = 'XXXX'; 
$memberId = md5(strtolower($data['email'])); 
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1); 

$url = 'https://' . $dataCenter . '.api.mailchimp.com/3.0/lists/' . $list_id . '/members/' . $memberId; 

$json = json_encode(array(
    'email_address' => $data['email'], 
    'status'  => $data['status'], // "subscribed","unsubscribed","cleaned","pending" 
    'merge_fields' => array(
     'FNAME'   => $data['firstname'], 
     'LNAME'   => $data['lastname'], 
     'GROUPINGS'  => array(
      0 => array(
       'name' => 'Interests', 
       'groups' => array($data['tag']), 
      ), 
     ), 
    ), 
)); 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $apiKey); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $json); 

$result = curl_exec($ch); 
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 

Antwort

6

Du vorübergehende Interesse Gruppierung in der falschen Reihe. müssen Sie die Interessengruppen-ID in interests Array mit Wert wie true übergeben.

$json = json_encode(array(
    'email_address' => '[email protected]', 
    'status'  => 'subscribed', 
    'merge_fields' => array(
     'FNAME'   => 'FirstName', 
     'LNAME'   => 'LastName', 
    ), 
    'interests'  => array( 
     '9143cf3bd1' => true, 
     '789cf3bds1' => true 
    ), 
)); 

Sie die ID von Interessengruppen [9143cf3bd1,789cf3bds1 in obigem Beispiel] von der Liste erhalten, indem auf diese URL anfordert

/lists/{list_id}/interest-categories 

see doc here

Wenn Sie die Teilnehmer von dem zu entferne Gruppe müssen Sie in Ihrer Aktualisierungsanforderung den Wert false festlegen.

+0

Hallo Muhammad, Mein Code ist: Array ( \t 'email_address' => '[email protected]', \t 'Status' => 'anhängig', \t 'merge_fields' => array ( \t \t 'FNAME' => 'Vorname' \t \t 'LNAME' => 'Lastname', ), 'Interessen' => array ( '8c4bb7fbfd' => true ), ) Aber es fügt noch den Benutzer der Interessengruppe nicht hinzu. Es gibt mir aber einen Kopfball von 200. –

+1

Sorry, es hat perfekt funktioniert! Vielen Dank. –

+0

Gut zu wissen, dass @TobiasChristianJensen :) –