php – 无法使用MailChimp API 3.0将用户添加到组中

前端之家收集整理的这篇文章主要介绍了php – 无法使用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);
您正在错误的数组中传递兴趣分组.
你需要传递兴趣数组中的兴趣组ID,其值为true.
$json = json_encode(array(
    'email_address' => 'test@example.com','status'        => 'subscribed','merge_fields'  => array(
        'FNAME'         => 'FirstName','LNAME'         => 'LastName','interests'     => array( 
        '9143cf3bd1' => true,'789cf3bds1' => true
     ),));

您将通过请求此URL获取列表中的兴趣组[9143cf3bd1,789cf3bds1]的ID

/lists/{list_id}/interest-categories

see doc here

如果要从组中删除订户,则需要在更新请求中将其值设置为false.

猜你在找的PHP相关文章