Mailchimp:提供的 API 密钥链接到不同的数据中心
Posted
技术标签:
【中文标题】Mailchimp:提供的 API 密钥链接到不同的数据中心【英文标题】:Mailchimp: The API key provided is linked to a different datacenter 【发布时间】:2017-06-07 05:30:20 【问题描述】:我正在尝试update a Mailchimp list,但收到以下错误:
"type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
"title":"Wrong Datacenter",
"status":403,
"detail":"The API key provided is linked to a different datacenter",
"instance":""
但是,我的请求 URL 中引用的数据中心与我的 API 密钥后缀相同 (us14)。
request.put(
url: 'https://us14.api.mailchimp.com/3.0/lists/xxxxxxxxx/members/',
auth:
user: 'apikey:xxxxxxxxxxxxxxxxxxxxx-us14'
,
data:
email_address: email,
status_if_new: 'subscribed',
email_type: 'html'
我已尝试生成新的 API 密钥,但无济于事(它们都在 us14 中)。
【问题讨论】:
您是否使用API playground 测试过相同的 API 密钥?如果是这样,它有效吗? 是的,确实如此。 @ekad 我遇到了同样的问题。对于他们的 API 和文档非常糟糕的 mailchimp 有多棒。浪费这么多时间做一件基本的事情。 【参考方案1】:好的,我首先通过 headers
对象传递您的 API 密钥来实现此功能。其次,我将我的数据包装在 JSON.stringify
中,以确保 MailChimp 在发布时收到正确的 JSON 对象。示例代码见下文,希望对您有所帮助:
request.post(
url: 'https://usXX.api.mailchimp.com/3.0/lists/xxxxxxx/members',
headers:
'Content-Type': 'application/json',
'Authorization': 'Basic xxxxxxxxxxxxxxxxxxxxxxxxx-usXX'
,
form: JSON.stringify(
email_address: req.body.email,
status: 'subscribed',
interests: 'xxxxxxx': true // Interest Group
)
, function(err, httpResponse, body)
res.send(body);
);
【讨论】:
【参考方案2】:const options =
method: "POST",
auth: "uname:apikey656a******d2dfdb37c071a7cc-us19" //Should not give a space after a colon after uname
我在 uname 的冒号后面加了一个空格。现在 API 工作正常
【讨论】:
以上是关于Mailchimp:提供的 API 密钥链接到不同的数据中心的主要内容,如果未能解决你的问题,请参考以下文章
Spatie/Newsletter:Laravel 5.6 中提供的 MailChimp 无效 MailChimp API 密钥
Laravel 提供了无效的 MailChimp API 密钥
如何将 API 密钥添加到 mailchimp 的 Axios 发布请求
当我尝试使用 Retrofit 访问 MailChimp 的 API 时,API 密钥总是丢失