Mailchimp API v3.0更改订阅者电子邮件

19

我想知道Mailchimp API v3.0是否允许更改订阅者的EMAIL地址。

这是我的代码:

$email = strtolower(trim($oldEmail));
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    return false;
}
$emailHash = md5($email);

$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash, 
    array(
        'email_address' => $oldEmail,
        'merge_fields' => array("EMAIL" => $newEmail),
        'status' => "subscribed",
    ));

它不起作用。 Mailchimp返回通常的GET MEMBER响应,并显示没有改变。

有任何想法吗?

谢谢, Riccardo

5个回答

13

我知道现在有点晚了,但是现在的PUT方法(.../3.0/lists/{listId}/members/{md5})可以更改电子邮件地址。

我在请求体中发送了新的电子邮件地址和MERGE0(EMAIL)标签,但使用了之前电子邮件地址的md5值。它能够正确地更改电子邮件地址。


1
嗨,juanjose_hg,你并不晚,事实上官方的变更日志显示这是今年11月最新的更新(http://developer.mailchimp.com/documentation/mailchimp/guides/changelog/)。由于你的回答涉及到我所询问的API版本,我将接受你的回答。抱歉,@TooMuchPete,希望你不介意。 - Guerriky

10
根据文档,是可以的。但我们这边也无法实现,所以我们将联系Mailchimp了解为什么文档中会有这个问题。
编辑:确实不可能,文档已过时。以下是Mailchimp对此的回复:
“您好Philipp,
感谢您就API相关问题联系MailChimp支持并允许我们提供帮助。
在MailChimp 3.0版本中,用户不能更新订阅者电子邮件地址。虽然以前版本的API可能支持此功能,但不再受支持。要更新订阅者电子邮件地址,最好的方法是从MailChimp内部手动更新。每个电子邮件地址都被视为列表成员的唯一标识符。
我完全理解文档可能会有点误导,并且您确实可以更新列表中的订阅者字段,但电子邮件地址不是其中之一。这就是为什么您在MailChimp中没有看到该信息更新的原因。我将在这端审查文档,并建议在我们建议使用API更新电子邮件地址时进行编辑。感谢您的反馈和耐心等待。
我们感谢您的时间、精力和耐心,感谢您选择MailChimp,并随时告知我们将来可能遇到的任何其他问题。”

9
根据MailChimp的更新日志,自2016年11月3日起,使用patchput方法可以更改用户的电子邮件地址。

2016年11月3日

通过对/lists/{list_id}/members/{subscriber_hash}进行PATCH或PUT调用,添加了更新现有列表成员的email_address的功能。

您不需要使用merge_field来更改电子邮件地址。您只需像这样操作即可:

$emailHash = md5($oldEmail);

$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash, 
    array(
        'email_address' => $newEmail,
        'status' => "subscribed",
    ));

对我来说没问题。 需要注意的是,“订阅者哈希”(ID)不会改变。这意味着你必须“知道”订阅者的ID,或者必须使用电子邮件地址而不是哈希值进行操作? - cljk

4

不,MailChimp 实际上不允许更改电子邮件地址。你可以在 Web 应用程序中执行此操作,但几乎所有的统计信息和活动信息都不会转移。由于这个原因,API v3.0 根本不支持更改电子邮件地址。您要做的是取消订阅或删除旧地址,然后重新创建新地址。


嗨 Pete。我猜无论如何,我都会失去所有订阅者的统计数据。谢谢你的澄清 :) - Guerriky
2
@TooMuchPete 听起来你已经学习了太多的高等教育 - 理论很好,但在现实生活中没有用 :) 失去订阅者统计数据只是一件事,更糟糕的是,使集成变得非常乏味。我有一个带有所有客户的CMS,并需要与MailChimp同步。这就像将邮政地址用作客户的主键,每当他们更改地址时,您都需要更改所有外键记录 - 这是疯狂的,也是数据规范化的大忌! - TheStoryCoder
1
@TheStoryCoder把地址作为人的主键会很愚蠢,这是真的。但是,把它作为房子的主键则是另一回事,而且更加合理。这正是此处所体现的区别。MailChimp目前实际上建立起来的不是发信给人,而是发信到邮箱。这些东西通常是1:1的,但并非总是如此,就像你看到的那样。这是一个可以随着时间变化而改变的权衡,但现在就是这样。 - TooMuchPete
2
我也在做一个整合,而且我同意@TheStoryCoder的看法。这真的非常烦人。与MailChimp的集成比我预期的要困难得多。 - nmit026
2
@TooMuchPete,我不知道SO(Stack Overflow)对我们在这里的辩论有多满意,但我敢再提一个观点。你说的都是理论。我不明白我们通过这种设计实际上会获得什么(除了可能让编程MC更容易 - 但这是错误的态度,计算机是为我们简化事情而存在的)。所以我不明白你如何称之为权衡。 - TheStoryCoder
显示剩余7条评论

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接