Я следую инструкциям, указанным здесь: https://api.stackexchange.com/docs/authenticationКак использовать oauth2 для доступа к API StackExchange?
Но, поскольку кода нет, я не могу правильно понять поток.
Я пытался получить часть аутентификации, используя два метода ниже, но я ударил по ошибке.
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. Пример кода действительно поможет! Благодарю.
EDIT: Это код, я использую в настоящее время:
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)
Вместо того, чтобы нажать на authorization_url и получить маркер, есть способ, которым я могу непосредственно принести маркер внутри самого сценария ?
Большое вам спасибо за это! Можете ли вы проверить мое редактирование в OP? Как я могу автоматизировать процесс получения токена? – 90abyss
Как я уже говорил, я бы посмотрел на selenium webdriver, чтобы его автоматизировать. Я отсылаю вас к вопросу SO на [PhantomJS via selenium] (http://stackoverflow.com/questions/13287490/is-there-a-way-to-use-phantomjs-in-python), который описывает аналогичную ситуацию. Если вам нужна дополнительная информация, я считаю, что это должно быть в новом вопросе. Не забудьте указать ваши требования: он должен быть полностью безголовый или разрешен GUI? Можно ли установить дополнительное программное обеспечение, или же он должен быть чистым Python? –