【发布时间】:2015-08-09 12:15:01
【问题描述】:
我正在尝试将用户添加到我在 Mailchimp 中创建的列表中,但我在任何地方都找不到任何代码示例。我已经尝试弄清楚如何使用 API,但我是一个非常喜欢“看例子然后学习”的人。
我已尝试使用 API 的第 2 版,但尽管从网上的示例开始工作,但似乎没有任何效果,Mailchimp 在其网站上对早期版本的 API 进行了以下说明:
2.0 及更早版本已弃用。这些版本仅提供最低限度的支持(错误修复、安全补丁)。
更新 1:我根据 TooMuchPete 的 answer 对管理订阅者的链接做了一些进一步的研究,并更改了我找到的一些代码 here,但它不起作用,因为函数http_build_query() 不处理嵌套数组。我不确定如何处理添加订阅者的“merge_fields”部分。我当前的代码如下:
$postdata = http_build_query(
array(
'apikey' => $apikey,
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => array(
'FNAME' => $name
)
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/', false, $context);
var_dump($result);
die('Mailchimp executed');
更新 2:我现在求助于使用 curl 并且我已经设法得到了一些几乎可以工作的东西。数据发送到 Mailchimp,但我收到错误 “您的请求不包含 API 密钥。” 我猜我需要按照 @987654324 所述进行身份验证@。我已经尝试将它添加到没有工作的 http 标头中。请参阅下面的代码:
$apikey = '<api_key>';
$auth = base64_encode( 'user:'.$apikey );
$data = array(
'apikey' => $apikey,
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => array(
'FNAME' => $name
)
);
$json_data = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json/r/n
Authorization: Basic '.$auth));
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
$result = curl_exec($ch);
var_dump($result);
die('Mailchimp executed');
【问题讨论】:
-
v2.0 仍然可以正常工作。实际上,v1.3 也是如此——但如果您正在寻找 API v3.0 示例,我会查看 GitHub repo。它现在只有 Python,但这可能足以让你在你的语言中指出正确的方向。 managing subscribers 上的文档中还有一个页面,它与实际代码示例相距甚远,但可能仍然有帮助。
-
谢谢@TooMuchPete。我用代码示例更新了我的问题。我想我正在慢慢到达那里。
-
我正在寻找 Python 中的 API v3.0 示例,而不仅仅是基本的获取请求。 GitHub 存储库中的示例很糟糕,抱歉。
-
GET 请求和 POST 请求没有本质区别。一个有身体,一个没有。结合Python Requests 文档,我不确定其他人还需要什么才能开始。不过,这些示例绝对不适合寻找复制和粘贴解决方案或库的人。
-
MailChimp 目前表示他们不会支持 2016 年以后的 3.0 之前的版本。
标签: php json curl mailchimp mailchimp-api-v3.0