Не удается добавить пользователя в группу с помощью MailChimp API 3.0

Я пытаюсь обновить свой код для подписки новых пользователей на мою рассылку MailChimp.

Я хотел бы добавить пользователя в группу, чтобы я мог различать пользователей при рассылке новостей. Этот код, однако, подписывает пользователя, но не добавляет его в какую-либо группу. Что я делаю неправильно? Я использую 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

смотри документ здесь

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

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]