【问题标题】:Updating a subscriber's email address using PHP cURL and Mailchimp API v3使用 PHP cURL 和 Mailchimp API v3 更新订阅者的电子邮件地址
【发布时间】:2015-09-22 02:03:33
【问题描述】:

我正在尝试使用 PHP cURL 和 Mailchimp API v3 更新订阅者的电子邮件地址。我的代码基于此:

Updating subscribers in a list using cURL and Mailchimp API v3

但不知何故,我无法更新电子邮件地址。我可以更新其他字段,但不能更新电子邮件地址。这就是我所拥有的:

$data = array(
    'apikey'        => $mailchimp_api_key,
    'email_address' => $orig_email,
    //'status'      => $status,
    'merge_fields'  => array(
        'EMAIL' => $email // also used NEW-EMAIL but it didn't work either
    )
);
$json_data = json_encode($data, JSON_NUMERIC_CHECK);
$url = $mailchimp_api_url.'lists/'.$mailchimp_list_id.'/members/'.md5($orig_email);
$request = 'PATCH';
$result = $this->curl_request($url, $json_data, $request); // in here is basically the cURL request based on VenomRush's question above, in the link

我认为我的数据请求有问题。谁能指出我正确的方向?谢谢。

【问题讨论】:

    标签: php mailchimp


    【解决方案1】:

    您无法在 API v3 中更新用户的电子邮件地址。即使在 v2 中,它与仅仅订阅一个新地址并没有太大的不同,所以这就是现在的方式。取消订阅或删除旧邮箱地址,订阅新邮箱。

    另外:您不需要在请求正文中传递 API 密钥(也不应该)。使用 HTTP Basic Auth 进行身份验证。

    【讨论】:

    • 如果用户有一堆电子邮件偏好会发生什么?创建新订阅者似乎很奇怪。您如何将所有这些数据迁移到“新”订户? v3 的 API 文档甚至说请求正文、电子邮件地址、只读 = false。
    • 任何独立于电子邮件地址的用户概念都需要来自系统外部,因为这并不是 MailChimp 的真正设置方式。
    • @TooMuchPete 可能是这样,但 MailChimp 允许订阅者通过他们的 Web 界面“更新”他们自己的电子邮件地址并且 API 的全部意义在于与其他系统交互,其中很多人不理解将电子邮件地址更改为“删除此帐户并使用几乎完全相同的数据创建一个新帐户”。
    • @TooMuchPete 不允许用户通过 api 更新电子邮件的设计非常糟糕。我已经在这个线程中至少阅读了你的逻辑和推理,虽然在纸上听起来很棒,但实际上它只是糟糕的设计。如果这是一种罕见的情况,那么为什么在 MC 仪表板中允许它而不是在 api 中呢?只是与其他人陈述我的意见并说明比您意识到的更多的客户需要此功能。我有多个客户需要这个功能。使用new-email 参数可以实现。
    • 每个人当然都有权发表意见。 MailChimp 架构的未来变化可能会在未来使其成为合理的变化。不过,您需要通过他们的 apihelp 地址直接向 MailChimp 表达这些感受。
    猜你喜欢
    • 2015-08-12
    • 2015-11-20
    • 1970-01-01
    • 2011-05-07
    • 2019-11-18
    • 2015-01-29
    • 2015-07-20
    • 2016-05-25
    • 2017-11-26
    相关资源
    最近更新 更多