使用OAuth 2.0和Python请求检索Yahoo API的访问令牌
我正在尝试使用本文档中描述的显式授权流检索Yahoo API的访问令牌: 一切正常,直到步骤4:交换访问令牌的授权码 我编写了以下python脚本来检索代码:使用OAuth 2.0和Python请求检索Yahoo API的访问令牌,python,api,oauth,python-requests,yahoo-api,Python,Api,Oauth,Python Requests,Yahoo Api,我正在尝试使用本文档中描述的显式授权流检索Yahoo API的访问令牌: 一切正常,直到步骤4:交换访问令牌的授权码 我编写了以下python脚本来检索代码: import urllib2 import requests import json url = 'https://api.login.yahoo.com/oauth2/get_token' body = "grant_type=authorization_code&redirect_uri=oob&code=**
import urllib2
import requests
import json
url = 'https://api.login.yahoo.com/oauth2/get_token'
body = "grant_type=authorization_code&redirect_uri=oob&code=************"
headers = {
'Authorization': 'Basic **************',
'Content-Type': 'application/json'
}
r = requests.post(url, data=body, headers=headers)
print r
注意:我将敏感数据替换为“***”
现在,当我执行脚本时,我只得到“401”错误消息
我100%确信登录凭据是正确的,因此它似乎与我发出请求的方式有关。这也是我第一次在python中使用“请求”
如果你能给我一些关于代码的反馈,如果我能正确地传递标题和正文信息,那就太好了。我特别不确定尸体的经过。文件仅说明以下内容:
请求正文示例:grant\u type=authorization\u code&redirect\u uri=https%3A%2F%2Fwww.example.com&code=abcdef
将身体变量更改为dict,即
body = {
'grant_type': 'authorization_code',
'redirect_uri': 'oob',
'code': '************',
}
不需要进行其他更改。希望有帮助。这个问题已经解决了。但可能其他用户仍然可以得到相同的401错误,即使他们使用正确的dict作为我。问题是在中的步骤2中生成的代码只能使用一次。这将得到相同的401错误。我花了一些时间才弄明白。希望这对其他人有帮助。我的答案对你有用吗?非常感谢,这就是问题所在!没问题。很高兴这有帮助。