【发布时间】:2018-10-13 04:29:18
【问题描述】:
我正在尝试将 OAuth2 与 Mailchimp API 一起使用,并且我正在按照他们的文档进行操作,但我无法完成第 4 步。在此步骤中,我将我从授权屏幕收到的代码交换为令牌.根据文档,这可以像这样在 curl 中完成:
curl --request POST \
--url 'https://login.mailchimp.com/oauth2/token' \
--data "grant_type=authorization_code&client_id={client_id}&client_secret={client_secret}&redirect_uri={encoded_url}&code={code}" \
--include
我试图通过编写以下代码将其转换为在 node.js 上工作:
var dataString = 'grant_type=authorization_code&client_id=' + clientid + '&client_secret=' + clientsecret + '&redirect_uri=' + encodedurl + '&code=' + url.parse(req.url, true).query.code;
var options = {
url: 'https://login.mailchimp.com/oauth2/token',
method: 'POST',
data: dataString
};
function callback(error, response, body) {
if (!error) {
console.dir(JSON.stringify(body));
}
else{
console.dir(error);
}
}
request(options, callback);
当我提出 request.debug = true 时,我看到我收到 400 错误。不过,发送到控制台的消息是一堆乱码。但是,当我使用这些相同的变量和端点通过 Postman 进行身份验证时,它工作正常,因此问题不在于变量或 API 本身。
我不完全确定我在这里做错了什么。我提出的请求似乎与文档中 curl 所写的几乎相同。那我哪里错了?
【问题讨论】:
标签: node.js oauth-2.0 mailchimp mailchimp-api-v3.0