python - github api v3 中的 oauth 流程不起作用

标签 python api oauth github

所以这应该很简单,但我似乎无法找到我的失败点。希望其他人可以向我指出。

首先,我转到 https://github.com/login/oauth/authorize?client_id=CLIENT_ID&scope=gist,这会向我返回一个代码。然后我这样做:

import requests, json

client_id = XXXX
client_secret = XXXX
code = XXXX

r = requests.post(
    'https://github.com/login/oauth/access_token', 
    data=json.dumps({
        'client_id':client_id, 
        'client_secret':client_secret,
        'code':code
    })
r.content  # this gives me a 404 header

当我转到我的测试用户时,它显示我已获得授权并且我的应用程序显示为只有一个用户,但我没有访问 token 。

我做错了什么。

最佳答案

嗯,我是对的,这是一个非常简单的问题,但我会把它留在这里,以防其他人遇到同样的错误。

如有疑问,请手动定义标题。所以你需要:

header = {'content-type':'application/json'}

然后传入header:

r = requests.post(
    'https://github.com/login/oauth/access_token', 
    data=json.dumps({
        'client_id':client_id, 
        'client_secret':client_secret,
        'code':code
    }),
    headers=header
)

对我来说,这解决了问题。

关于python - github api v3 中的 oauth 流程不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10058522/

相关文章:

python - 重定向到 View 时 Django NoReverseMatch

javascript - API请求方式

oauth - "Error while reading message"尝试获取 OAuth 请求 token 时

python - 如何从 Windows cmd 运行 Python

python - 如何使用 Python Mock 断言方法调用顺序?

python - 如何用函数记录一个文件?

c# - 在 C# 中管理 C++ Garmin API

c - 高级内存编辑/函数调用

c# - 将 Twitter 集成到网站中

android - 具有不同风格的 Android 应用程序的客户端 ID