[英]Mailchimp Restful API 3.0 in Node.js always Resource not Found
我正在尝试使用 mailchimp 的 api 之一,但不知何故我总是得到
{
"type": "http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
"title": "Resource Not Found",
"status": 404,
"detail": "The requested resource could not be found.",
"instance": ""
}
我正在使用请求库发出请求并查看下面的代码
var uniqueListId = "XXXX";
var apiKey = "XXX";
.post(function(req, res) {
var email = req.body.email;
var status = "subscribed";
request({
url: 'https://usX.api.mailchimp.com/3.0/lists/' + uniqueListId + '/members',
headers: {
'Authorization': 'randomUser ' + apiKey,
'Content-Type': 'application/json',
},
method: 'POST',
json: {
email_address: email,
status: status
}
}, function(err, response, body) {
if (err) {
res.json(err);
} else {
res.json(response.statusCode, body);
}
});
});
为了清楚起见,这是我指的文档http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/
是因为我的 req.body 数据吗?
我同意@TooMuchPete,同样的问题发生在我身上,我花了一整天的时间来解决这个问题,最后,我发现 Audience Id list_id
是错误的。
我们需要选择位于AudienceTab > ViewContacts > Settings > Audience and Defaults > Audience ID下的那个,但不幸的是,我选择了显示在 URL 中的那个。
如果您收到 404,那是因为您点击的 URL 未引用实际资源。 uniqueListId
可能为空或不是正确的 ID。
我建议使用 Postman chrome 附加应用程序来处理请求和帖子 - 您也可以使用它来生成大多数语言的示例代码。 它非常适合调试。
使用后,我发现您的请求选项应该类似于:
let requestOptions = {
hostname: 'us14.api.mailchimp.com',
method: 'GET',
path: '/3.0/lists' + listId,
headers: {
'Authorization': 'User ' + config.mailChimp.apiKey,
'Content-Type': 'application/json',
},
}
您几乎肯定会将 mailchimp 的 web_id 与 list_id 混淆。 list_id 是 API 所需的 ID,web_id 是打开列表时在 url 中看到的 ID。 我完全不知道为什么 mailchimp 使用 2 个不同的 ID,也不知道为什么他们似乎没有在他们的任何开发人员文档中提出它。
下面是一篇解释如何找到它的文章 - 基本上你去你的列表 -> 设置选项卡 -> 列表名称和默认值。
https://3by400.com/get-support/3by400-knowledgebase?view=kb&kbartid=6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.