问题描述
我正在使用Mailchimp API v3.0来突变列表成员。
使用以下endpoint,存档成员可以正常工作:
DELETE /lists/{list_id}/members/{subscriber_hash}
通过网络界面,我可以“取消存档”成员,将其还原为以前的状态。
我可以通过使用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