2016-07-27 10 views
5

MailChimpニュースレターに新規ユーザーを登録するためのコードを更新しようとしています。MailChimp API 3.0を使用してグループにユーザーを追加できません

ユーザーをグループに追加して、ニュースレターを送信するときにユーザーを区別できるようにしたいと考えています。ただし、このコードはユーザーにサブスクライブしますが、どのグループにも追加しません。私は間違って何をしていますか?私はMailChimp API 3.0を使用しています。

マイコード:

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

答えて

6

あなたは間違った配列内のインタレストグループを渡しています。 trueの値を持つinterests配列のインタレストグループIDを渡す必要があります。あなたがからサブスクライバを削除したい場合は

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

あなたはこのURL

/lists/{list_id}/interest-categories 

see doc here

に要求することにより、リストの利益団体[9143cf3bd1,789cf3bds1上記の例では]のIDを取得しますグループの場合、更新要求でその値をfalseに設定する必要があります。

+0

こんにちはムハンマド、 私のコードは次のとおりです。( \t 'EMAIL_ADDRESS' => '[email protected]'、 \tのステータス '=> '保留'、 \t 'merge_fields'=>配列 配列( \t \t 'FNAME' => '姓'、 \t \t 'LNAME' => '氏名'、 )、 '利益' =>配列( '8c4bb7fbfd' => TRUE)、 ) それでも、ユーザーはインタレストグループに追加されません。それは私に200ヘッダーを与えます。 –

+1

申し訳ありませんが、完璧に機能しました!ありがとう。 –

+0

@TobiasChristianJensenを知ってうれしいです:) –

関連する問題