Я получил API REST API для определенной службы как часть бета-версии. Мне сказали, что авторизация прошла через OAuth2.Использование OAuth2 с именем пользователя и паролем
я получил следующее:
- ID
- SECRET
- САЙТА
Я также получил образец кода в Ruby:
client = OAuth2::Client.new(key, secret, :site => site)
token = client.password.get_token('[email protected]', 'your_password')
access_token = OAuth2::AccessToken.new(client, token)
JSON.parse access_token.get("/v1/users/me").body rescue {}
Пытаюсь для реализации этого же фрагмента в python с помощью oauth2
пакета, без успеха:
consumer = oauth2.Consumer(key=self._client_id,
secret=self._client_secret)
request_token_url = "api.theservice.com/"
token = oauth2.Token(key=self._email, secret=self._password)
client = oauth2.Client(consumer, token)
resp, content = client.request(request_token_url, "GET")
pprint.pprint(resp)
pprint.pprint(content)
resp, content = client.request(request_token_url + 'v1/users/me', "GET")
pprint.pprint(resp)
pprint.pprint(content)
Второго ответ содержит следующее:
'www-authenticate': 'Bearer realm="Doorkeeper", error="invalid_token", '
'error_description="The access token is invalid"',
Я также попытался создать oauth2.Client
объект без маркеров, и проверил первый ответ в течение access_token
, но ничего сорт прошел.
Каков правильный способ аутентификации здесь?
ли эта услуга с использованием трех ножках OAuth, как Twitter описано [здесь] (https://github.com/joestump/питон-oauth2/вики/Twitter-Три ноги-OAuth)? – skyline75489
Насколько мне известно. –