如何使用 Mailchimp API 取消归档成员?

3li*_*t0r 5 mailchimp-api-v3.0

我正在使用 Mailchimp API v3.0 来改变列表成员。

使用以下端点对成员进行归档不会出现问题:

DELETE /lists/{list_id}/members/{subscriber_hash}
Run Code Online (Sandbox Code Playgroud)

网络界面允许我“取消存档”成员,将其恢复到之前的状态。

Web 界面取消存档

我还没有在API文档中找到这个功能。

我能够使用端点取消存档成员:

PATCH /lists/{list_id}/members/{subscriber_hash}
Run Code Online (Sandbox Code Playgroud)

与身体:

{"status": "subscribed"}
Run Code Online (Sandbox Code Playgroud)

尽管这确实会取消归档该成员,但不会恢复该成员的状态。它只是将状态设置为正文中提供的“已订阅”。

我想将成员恢复到存档之前的状态。如果会员在存档之前订阅,那么我希望在取消存档后订阅它。同样,如果成员在存档之前取消订阅,则应在取消存档后取消订阅。与网络界面的功能类似。

检索已归档成员的数据时,返回数据不包括归档前的状态。

如何使用 Mailchimp API 取消归档成员?我是否忽略了某些内容,或者 API 中是否缺少此功能?

3li*_*t0r 4

我已与 Mailchimp 支持团队取得联系,目前拥有创可贴解决方案。

首先让我添加一些文档中未提供的附加信息(这来自我与支持团队的聊天会话):

总的来说,从我所看到的来看,似乎没有一种特定的方法可以在不改变联系人原始状态的情况下取消存档联系人。然而,虽然自行取消订阅的联系人不会受到状态更改的影响,但手动取消订阅的其他联系人(由您或其他人通过帐户/API)将进行更新,因为这被视为一种管理操作。

根据上述信息,我当前的解决方案是将列表成员更新为“已订阅”状态。如果此操作因 400 错误而失败,我假设该成员自行取消订阅并发送另一个请求,这次使用状态“取消订阅”。

所以:

PATCH /lists/{list_id}/members/{subscriber_hash}
{"status": "subscribed"}
Run Code Online (Sandbox Code Playgroud)

如果以上结果为状态 400,则:

PATCH /lists/{list_id}/members/{subscriber_hash}
{"status": "unsubscribed"}
Run Code Online (Sandbox Code Playgroud)

该解决方案仍有很多不足之处。这实际上意味着您无法取消归档您自己赋予“取消归档”状态的列表成员。您还必须向取消订阅的列表成员提出 2 次请求。

我已发送一封反馈电子邮件建议添加资源:

POST /lists/{list_id}/members/{subscriber_hash}/actions/unarchive
Run Code Online (Sandbox Code Playgroud)

这与他们永久删除列表成员资源是一致的。

  • @VladyslavTurak 因为问题是关于取消存档,所以成员的当前状态是“已存档”,而不是“取消订阅”。由于状态无法更改为“已订阅”(因为成员自行取消订阅),因此我们可以通过将状态设置为“取消订阅”来删除“已存档”状态。 (2认同)