【发布时间】:2016-07-20 12:09:03
【问题描述】:
我正在按照此处提到的说明进行操作:https://api.stackexchange.com/docs/authentication
但由于没有提供代码,我无法正确理解流程。
我一直在尝试使用以下两种方法完成身份验证部分,但我遇到了死胡同。
1)
import requests
from pprint import pprint
resp = requests.get('https://stackexchange.com/oauth/dialog?client_id=6667&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success/')
pprint(vars(resp))
2)
import oauth2 as oauth
from pprint import pprint
url = 'https://www.stackexchange.com'
request_token_url = '%s/oauth/' % url
access_token_url = '%s/' % url
consumer = oauth.Consumer(key='mykey',
secret='mysecret')
client = oauth.Client(consumer)
response, content = client.request(request_token_url, 'GET')
print(response, content)
我不知道如何从这里继续前进?我需要使用返回的访问令牌并使用它来查询 API。一个示例代码真的很有帮助!谢谢。
编辑:这是我目前使用的代码:
from requests_oauthlib import OAuth2Session
from pprint import pprint
client_id = 'x'
client_secret = 'x'
redirect_uri = 'https://stackexchange.com/oauth/login_success'
scope = 'no_expiry'
oauth = OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope)
pprint(vars(oauth))
authorization_url, state = oauth.authorization_url('https://stackexchange.com/oauth/dialog')
print(authorization_url)
有没有一种方法可以直接在脚本本身中获取令牌,而不必单击授权 URL 并获取令牌?
【问题讨论】:
-
你曾经设法通过 Python 进行身份验证吗?如果是这样,您介意发布示例代码吗?
标签: python oauth-2.0 stackexchange-api