PHP Mailchimp API更新状态从'unsubscribed'回到'subscribe'

时间:2016-05-27 15:57:20

标签: php mailchimp

我已经被困3天了,我是这个mailchimp API的新手。我想知道如何使用php中的命令将mailchimp中特定电子邮件的“未订阅”更新回“订阅”。

我看到了有关使用Patch的文档。但说实话,我不知道如何使用它,所以如果有人能给我一个关于如何使用补丁的示例代码。这将非常有帮助。

非常感谢。

$apikey = 'my_apikey';
$auth = base64_encode( 'user:'.$apikey );

$data = array(
"apikey"        => $apikey,
"email_address" => Input::get('join_email'),
"status" => "pending",
"merge_fields"=> array(
"FNAME" => Input::get('join_fname'))
);
$json_data = json_encode($data);


if ($result["title"] =="Member Exists") 
{
    //-----update the status here from unsubscribe to subscribe
    $list_id = 'mylistID';
    return Response::view('errors.success');
    'what should I put here?'
} else {
    //return $result;
    return Response::view('errors.join');   
}

1 个答案:

答案 0 :(得分:0)

所以这里有一些活动的部分。

(1)仅仅是一个FYI。 MailChimp将不允许您将订户添加回列表,如果该订户通过他们自己的操作(即通过活动或其他取消链接)取消订阅。这有助于减少垃圾邮件投诉。如果订阅者最初是通过admin取消订阅的(即API或通过MailChimp中的列表UI),那么仍然可以将订阅者添加回列表。

(2)我不确定你所分享的代码的上下文是什么,所以我不能说出来。这就是说MailChimp文档要求你发出PATCH / PUT请求以更新订阅者,这样你就可以使用PHP's built in curl library来做到这一点。我鼓励你自己编写,但一个例子可能看起来像这样。

$ch = curl_init('https://{dc}.api.mailchimp.com/3.0/lists/{list-id}/members/{subscriber-hash}');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$response = curl_exec($ch);
curl_close($ch);

我再次鼓励你阅读那些链接的文档,如果你选择走这条路,你就自己编写。

(3)听起来你可能从图书馆中受益,摘要为你做了很多这方面的工作。我在这里写了一个工具包:

https://github.com/Jhut89/Mailchimp-API-3.0-PHP

如果您发现很难通过curl发出这些请求,那么使用此库可能会节省您一些时间和头痛。

希望能帮到你。