我试图将用户订阅到Mailchimp列表。
我在前端使用Angular,但所有数据都被发送到PHP以使用curl执行http请求。
我已经删除了此测试的所有前端代码,我只是坚持使用PHP。
我在MAMP本地测试所有这些。在初始测试中,尝试订阅相同的电子邮件地址会引发错误,因为它应该根据Mailchimp 3.0 API参考:
如果地址已在您的列表中,或者缺少任何所需的merge_fields,您将收到错误。 http://developer.mailchimp.com/documentation/mailchimp/guides/manage-subscribers-with-the-mailchimp-api/
不幸的是,现在还没有发生这种情况,我可以使用下面的代码多次订阅同一个电子邮件地址。我在回复以及Mailchimp列表管理员中已经确认了这一点。
function mailchimp_signup(){
$data = $this->input->post();
$data = array(
'email_address' => 'testaccount@test.com',
'status' => 'subscribed',
'merge_fields' => array(
'FNAME' => 'Chester',
'LNAME' => 'Copperpot'
)
);
$data_json = json_encode($data);
$url = 'https://XXX.api.mailchimp.com/3.0/lists/XXXXXXXXX/members/';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERPWD, "auth:XXXXXXXXXXXXXXXXXXXX");
curl_setopt($curl, CURLOPT_POSTFIELDS,$data_json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_json)));
$response = curl_exec($curl);
curl_exec ($curl);
curl_close ($curl);
echo $response;
}
我仍然通过我的Angular服务和控制器记录整个响应,并且我能够使用POST多次提交相同的电子邮件地址并更改合并字段数据,当然,这是不理想。
我想知道我在这里做的事情是否导致我没有得到我最初看到的默认行为。其他人遇到过这个问题吗?