2016-01-25 3 views
0

Я пытаюсь получить ответ от payever's APIOAuth2 без кода подтверждения с использованием Python просит

мне удалось получить токен авторизации с использованием только мой client_id и мой client_secret, проблема в том, когда я пытаюсь передать в paramters как предложено в документации, я получаю следующий ответ об ошибке:

u'{"error":"access_denied","error_description":"OAuth2 authentication required"}' 

я предполагаю, что это потому, что я не пошел через весь поток oauth2, проблема заключается в том, что, чтобы быть совместимым с этим, мне нужно подтверждение код, который мне никогда не нужен, так как я могу получить токен доступа, используя только мои client_id и client_secret.

Любые идеи о том, как это сделать? Я посмотрел вокруг, пытаясь пропустить даже некоторые шаги с requests_oauthlib:

import requests_oauthlib 

token = get_token(client_id, client_secret) 
oauth = requests_oauthlib.OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope) 
oauth.token = access_token 
oauth.access_token = True 

payments_url = 'https://mein.payever.de/api/payment' 

rr = oauth.get(payments_url) 

но не повезло

u'{"error":"invalid_grant","error_description":"The access token provided is invalid."}' 

EDIT:

Я использовал subprocess.check_output ('завиток - .. .... ') и отлично работает

ответ

0

Рассмотрев API Payever, я бы не использовал request_oauthlib, а вместо этого чистые запросы. API кажется чрезвычайно простым, поэтому Oauthlib не требуется.

Я бы начал с доступа к ресурсам напрямую с помощью Curl в терминале или с использованием чистой библиотеки Requests в Python. API Referece показывает следующий способ получить маркер:

curl -k https://mein.payever.de/oauth/v2/token \ 
-d client_id="{client_id}" \ 
-d client_secret="{client_secret}" \ 
-d grant_type="http://www.payever.de/api/payment" \ 
-d scope="API_CREATE_PAYMENT" 

JSON ответ содержит access_token и он может быть использован для доступа к ресурсу с Curl команды описан в ссылке: Payever API reference

+0

Спасибо за ваше время Липпоненого, я буду затем для команд curl, использующих os.system, так как мой скрипт находится на python. – johan855

+0

Я просто использовал Curl в качестве примера. Запросы-библиотека, возможно, самый простой выбор для вас, вам не нужно использовать системные вызовы. Проверьте документы с http://docs.python-requests.org/en/latest/ – lipponen

+0

Я использовал запросы, чтобы получить токен доступа и os.system, чтобы получить окончательный ответ – johan855