2016-07-27 3 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

Вы передаете процентную группировку в неправильном массиве. вам необходимо передать идентификатор группы интересов в interests массив со значением как true.

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

Вы получите идентификатор групп интересов [9143cf3bd1,789cf3bds1 в приведенном выше примере] списка, запрашивая к этому URL

/lists/{list_id}/interest-categories 

see doc here

Если вы хотите, чтобы удалить абонента из группе, вы должны установить его значение false в запросе на обновление.

+0

Привет Мухаммаду, Мой код: массив ( \t 'email_address' => '[email protected]', \t 'статус' => 'в ожидании', \t 'merge_fields' => массив ( \t \t 'Fname' => 'FirstName', \t \t 'LNAME' => 'LastName', ), 'интересы' => массив ( '8c4bb7fbfd' => верно ), ) Но он по-прежнему не добавляет пользователя в группу интересов. Однако он дает мне 200 заголовков. –

+1

Извините, это сработало отлично! Благодарю. –

+0

Рад узнать, что @TobiasChristianJensen :) –

Смежные вопросы