2016-07-27 22 views
5

Kullanarak bir gruba kullanıcı ekleyemiyorum MailChimp bültenime yeni kullanıcılar abone olmak için kodumu güncelleştirmeye çalışıyorum.MailChimp API 3.0

Kullanıcıları bir gruba eklemek istiyorum, böylece bülten gönderirken kullanıcıları ayırt edebilirim. Bununla birlikte, bu kod kullanıcıyı abone ancak herhangi bir gruba eklemiyor. Neyi yanlış yapıyorum? MailChimp API 3.0 kullanıyorum.

Kodum:

$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); 

cevap

6

Yanlış dizide Faiz gruplama geçiyoruz. değeri ile interests dizisinde, ilgi grubu kimliğini iletmeniz gerekir. Eğer aboneyi kaldırmak istiyorsanız

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

Bu URL'ye

/lists/{list_id}/interest-categories 

see doc here

isteyerek listenin çıkar gruplarının [9143cf3bd1,789cf3bds1 yukarıdaki örnekte] id alacak Grup, değerini kendi isteğinize göre false olarak ayarlamanız gerekir.

+0

Merhaba Muhammed Benim kodudur: ( \t 'email_address' => '[email protected]', \t 'status' => 'beklemede', \t 'merge_fields' => array dizi (=> 'soyad' \t \t 'FNAME' => 'ad', \t \t 'LNAME', ), 'ilgi alanı' => dizi ) ( => doğru '8c4bb7fbfd') Ancak, kullanıcıyı hala ilgi grubuna eklemiyor. Yine de bana 200 başlık verir. –

+1

Üzgünüm, mükemmel çalıştı! Teşekkürler. –

+0

@TobiasChristianJensen :) –