无法使用 MailChimp API 3.0 将用户添加到组
Posted
技术标签:
【中文标题】无法使用 MailChimp API 3.0 将用户添加到组【英文标题】:Can't add user to a group using MailChimp API 3.0 【发布时间】:2016-12-01 11:35:00 【问题描述】:我正在尝试更新我的代码,以便让新用户订阅我的 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);
【问题讨论】:
【参考方案1】:您在错误的数组中传递了兴趣分组。
您需要在interests
数组中传递兴趣组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 获得列表的兴趣组 ID [9143cf3bd1,789cf3bds1
in above example]
/lists/list_id/interest-categories
see doc here
如果您想从群组中删除订阅者,您需要在更新请求中将其值设置为false
。
【讨论】:
嗨 Mûhámmàd,我的代码是:array('email_address' => 'test@example.com', 'status' => 'pending', 'merge_fields' => array('FNAME' = > 'FirstName', 'LNAME' => 'LastName', ), 'interests' => array( '8c4bb7fbfd' => true ), ) 但它仍然没有将用户添加到兴趣组。它给了我一个 200 的标题。 很高兴知道@TobiasChristianJensen :) 我正在尝试同样的事情,但我收到 400 Bad request 错误。消息是:无效的兴趣 ID:'8f14b8ad10'。 我添加的 ID 是否错误...我从这个 GET 请求中得到了"list_id": "8f14b8ad10",
:/lists/list_id/interest-categories
最近试过,好像interests
数组不应该有直接键,而是数组:'interests' => array( array( '9143cf3bd1' => true), array('789cf3bds1' => true) ),
以上是关于无法使用 MailChimp API 3.0 将用户添加到组的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 Java Maleorang 的 MailChimp API 3.0 包装器获取数据 - 404 错误
是否可以在 mailchimp API 3.0 中按成员获取细分?
如何使用 Mailchimp API 3.0 多次向订阅者发送同一封电子邮件