如何将 API 密钥添加到 mailchimp 的 Axios 发布请求
Posted
技术标签:
【中文标题】如何将 API 密钥添加到 mailchimp 的 Axios 发布请求【英文标题】:How to add API key to Axios post request for mailchimp 【发布时间】:2021-08-15 05:52:47 【问题描述】:我正在尝试设置 axios 发布请求以将成员添加到受众列表,但我不知道如何添加 API 密钥(不断给出错误 401:'您的请求不包含 API 密钥.')。我在“授权”标题中尝试了很多东西,就像我在下面放的一样(还有:"Bearer $mailchimpKey"
、"$mailchimpKey"
、"Bearer $mailchimpKey"
、"Basic $mailchimpKey"
,可能还有更多......)。
我也不知道“用户名”是什么,但当我在其他地方测试 API 时,“任何”都可以。
有人知道我应该如何设置吗?
axios
.post(
`https://$server.api.mailchimp.com/3.0/lists/$list_id/members`,
email_address: email,
status: "subscribed",
,
"User-Agent": "Request-Promise",
Connection: "keep-alive",
Authorization: `Basic any:$mailchimpKey`,
// Testing on localhost
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Content-Type",
)
【问题讨论】:
【参考方案1】:如果您打算使用HTTP Basic authentication,只需使用Axios auth
config option
axios.post(
`https://$server.api.mailchimp.com/3.0/lists/$encodeURIComponent(list_id)/members`,
email_address: email,
status: "subscribed",
,
auth:
username: "anystring",
password: mailchimpKey
,
headers: // personally, I wouldn't add any extra headers
"User-agent": "Request-Promise"
)
HTTP 基本身份验证标头看起来像
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
"Basic" 之后的字符串是 Base64 编码的 "username:password"
字符串。 Axios 提供了auth
选项以方便您自己对字符串进行编码。
您遇到的其他一些问题是:
在headers
配置选项之外添加请求标头
尝试将Access-Control-Allow-Origin
和Access-Control-Allow-Headers
作为请求标头发送。这些只是响应标头。将它们添加到您的请求中很可能会导致更多 CORS 错误
【讨论】:
以上是关于如何将 API 密钥添加到 mailchimp 的 Axios 发布请求的主要内容,如果未能解决你的问题,请参考以下文章
Mailchimp:提供的 API 密钥链接到不同的数据中心
使用 Mailchimp 的 API v3 将订阅者添加到列表
如何在 laravel 5.5 中验证 Mailchimp api 密钥
使用 curl 从 mailchimp 获取数据我在哪里将 api 密钥放在 curl 调用中