我在使用Mailchimp令牌API时遇到问题。我已经使用OAuth进行了很多工作,但是使用此API似乎并没有什么问题。假设我已从回调获取授权代码,则获取令牌的请求如下:
URL:https://login.mailchimp.com/oauth2/token
方法:POST
身体
grant_type
:“ authorization_code”
client_id
:client_id
client_secret
:client_secret
redirect_uri
:redirect_uri
code
:代码
client_id,client_secret和redirect_uri完全来自Mailchimp Registered App配置。我基本上会复制粘贴这3个值以确保有效信息。响应是
Bad request 400
{
"error": "invalid_client"
}
我尝试从服务器,curl和邮递员发送邮件。还是一样的错误。你们可以帮忙吗?
答案 0 :(得分:2)
我对Python请求有同样的问题。我在通过请求发送的字典数据上使用了urlencode
:
Params = {
'grant_type': 'authorization_code',
'code': code,
'redirect_uri': redirect_url,
}
params = urllib.parse.urlencode(params)
tokenResponse = requests.post(access_token_url, data=params)
一旦我删除了有效的urlencode
:
Params = {
'grant_type': 'authorization_code',
'code': code,
'redirect_uri': redirect_url,
}
tokenResponse = requests.post(access_token_url, data=params)
我绝不是Oauth2的专家,所以我不确定为什么这样做。我想当我阅读文档时说POST是x-www-form-urlencoded的,所以我对数据进行了urlencoded。确保您的身体格式正确。