通过MailChimp API替换营销活动内容占位符失败问题排查
我之前也碰到过一模一样的情况——排查了语法、mc:edit标识唯一性,甚至换成极简的<p>文本都没用,那段时间真的头大。结合我的踩坑经验,给你几个靠谱的排查方向:
先确认API请求的基础配置是否正确
更新营销活动内容必须用PATCH /campaigns/{campaign_id}/content端点,别和创建时的POST搞混了。另外请求头一定要把Content-Type设为application/json,不然MailChimp根本解析不了你的请求体。我之前就是不小心漏了这个头,折腾了半天。检查请求体的结构是否符合要求
正确的请求体应该是直接把更新后的HTML放在html字段里,比如:{ "html": "<p>替换占位符后的内容</p>" }别把
html嵌套到多余的对象里,比如错误地放在content节点下——MailChimp的API对结构要求很严格,一点错都不行。验证账号权限和密钥有效性
首先确保你的API密钥末尾的区域标识(比如us1、us2)和MailChimp账号的服务器区域完全匹配,不匹配的话请求会静默失败。另外,这个密钥对应的账号必须拥有该营销活动的编辑权限,权限不够的话,MailChimp可能返回200但实际没执行更新,一定要看响应体里的细节,别只看状态码。确认营销活动的状态
如果营销活动已经是已发送或者计划发送状态,MailChimp是禁止修改内容的。先调用GET /campaigns/{campaign_id}接口查一下status字段,必须是save(草稿)状态才能更新。我之前就是没注意到活动已经排了发送计划,白忙活了好久。用后台手动更新做对比
先在MailChimp后台手动修改这个活动的内容,然后调用GET /campaigns/{campaign_id}/content获取返回的HTML,和你API发送的内容对比。有时候MailChimp会自动添加一些内部标签(比如mc:hideable),如果你的HTML缺少这些,可能会被系统重置成原来的内容。查看MailChimp的API日志
登录后台到账户 > 账户设置 > API密钥,找到对应密钥的请求日志,里面会显示你每次请求的完整细节,包括请求体、响应体和隐藏的错误提示。我之前就是在这里发现自己的HTML里有未转义的特殊字符,虽然语法没问题,但MailChimp悄悄拒绝了更新。
内容的提问来源于stack exchange,提问作者Ravenous

