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

问题描述

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

使用以下endpoint,存档成员可以正常工作:

DELETE /lists/{list_id}/members/{subscriber_hash}

通过网络界面,我可以“取消存档”成员,将其还原为以前的状态。

web-interface unarchive

我还没有在api文档中找到此功能

我可以通过使用endpoint来取消归档该成员:

PATCH /lists/{list_id}/members/{subscriber_hash}

连身:

{"status": "subscribed"}

尽管这会取消存档成员的身份,但这不会恢复该成员的状态。只需将其状态设置为正文中提供的“已订阅”即可。

我想在存档之前将成员恢复到其状态。如果某个成员在归档前已订阅,那么我希望在取消归档后对其进行订阅。同样,如果成员在归档前已取消订阅,则在取消归档后应取消订阅。类似于网络界面。

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

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

解决方法

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

首先让我添加一些文档中未提供的其他信息(这是我与支持团队的聊天记录):

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

使用以上信息,我当前的解决方案是将列表成员更新为“已订阅”状态。如果失败并显示400错误,则我认为该成员自己取消了订阅,并发送了另一个请求,这次使用状态“取消订阅”。

所以:

PATCH /lists/{list_id}/members/{subscriber_hash}
{"status": "subscribed"}

如果以上情况导致状态为400,则:

PATCH /lists/{list_id}/members/{subscriber_hash}
{"status": "unsubscribed"}

此解决方案仍然有很多不足之处。这实际上意味着您不能取消存档自己状态为“未存档”的列表成员。您还必须向未订阅的列表成员发出2个请求。

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

POST /lists/{list_id}/members/{subscriber_hash}/actions/unarchive

与他们的permanent delete list member resource保持一致。