Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用OAuth 2.0和Python请求检索Yahoo API的访问令牌_Python_Api_Oauth_Python Requests_Yahoo Api - Fatal编程技术网

使用OAuth 2.0和Python请求检索Yahoo API的访问令牌

使用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=**

我正在尝试使用本文档中描述的显式授权流检索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=************"
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错误。我花了一些时间才弄明白。希望这对其他人有帮助。

我的答案对你有用吗?非常感谢,这就是问题所在!没问题。很高兴这有帮助。