Box API通过python获取访问令牌

Box API通过python获取访问令牌,python,api,access-token,box,Python,Api,Access Token,Box,谢谢你的帮助。我通过自述页面上的网站获取授权代码: 并通过python发布访问令牌。但接收无效的_请求错误。和我试过邮递员的结果一样。 附上我的代码和错误消息,我是否理解了一些错误 url = 'https://api.box.com/oauth2/token' payload = {'grant_type':'authorization_code','code':auth_code,'client_id':'ID','client_secret':'SECRET'} r = requests.

谢谢你的帮助。我通过自述页面上的网站获取授权代码:

并通过python发布访问令牌。但接收无效的_请求错误。和我试过邮递员的结果一样。 附上我的代码和错误消息,我是否理解了一些错误

url = 'https://api.box.com/oauth2/token'
payload = {'grant_type':'authorization_code','code':auth_code,'client_id':'ID','client_secret':'SECRET'}
r = requests.post(url, data=json.dumps(payload))
json_r = r.json()
print json_r
错误消息:

{
  "error": "invalid_request",
  "error_description": "Invalid grant_type parameter or parameter missing"
}

问题在于,当函数的
data
参数需要一个普通字典时,将POST有效负载编码为JSON字符串。 因此,像这样做应该是可行的:

r = requests.post(url, data=payload)

它确实有用,非常感谢!但有时我会用JSON字符串发帖,效果很好。这有点让人困惑。谢谢你的帮助@乔伊:不客气!如果使用
JSON
参数,即
requests.post(url,JSON=payload\u as_JSON)
,您也可以传递JSON字符串-这可能就是您感到困惑的原因吧?这也适用于:requests.post(url,headers=headers,data=JSON.dumps(payload))和:payload={'name':'name','parent':{id':'0'}。。。所以我觉得不太清楚。我真的很感激你的建议!!