OAuth request_token для Etsy, проблема с созданием URL
Я пытаюсь создать приложение для доступа к Etsy api с помощью python3, я тестирую свой базовый код в idle3, мне нужно получить токен oauth, я посмотрел здесь документацию etsy, но все описано для php. ниже мой код в idle3 (я изменил свои ключи);
>>>payload = { 'api_key' : 'pvhkg9y4e7', 'shared_secret' : 'ib5msimmo', 'scope' : 'transactions_r,listings_w,billing_r,treasury_r'}
>>> url = "https://openapi.etsy.com/v2/oauth/request_token"
>>> r = requests.get(url, params=payload)
>>> print(r.url)
https://openapi.etsy.com/v2/oauth/request_token?api_key=pvhkg9y4e7&scope=transactions_r%2Clistings_w%2Cbilling_r%2Ctreasury_r&shared_secret=ib5msimmo
>>> r.text
>>>'oauth_problem=parameter_absent&oauth_parameters_absent=oauth_consumer_key%26oauth_signature%26oauth_signature_method%26oauth_nonce%26oauth_timestamp
Мне нужна помощь в создании правильного URL. Думаю, мне нужно изменить формулировку полезной нагрузки на oauth_consumer_key, oauth_signature, но я не понимаю, как включить oauth_signature_method (я использую request.get) или oauth_timestamp, и я не знаю, что oauth_nonce есть?
Я намерен включить все это в приложение фляги, поэтому я посмотрел здесь на flask_oauth, но я не уверен, что это даст мне метку времени и одноразовый номер. Все советы очень ценятся, я слежу за учебником по колбам Мигеля Гринберга, мне нужен такой для моего приложения etsy! какие-либо предложения
Я также пробовал request_oauthlib, но получил это;
>>> from requests_oauthlib import OAuth1
>>>Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
from requests_oauthlib import OAuth1
ImportError: No module named 'requests_oauthlib'
С уважением, Пол
1 ответ
Я написал разработчикам etsy, которые вернулись с некоторым php-кодом, я очень мало знаю python, но не знаю PHP, поэтому я вернулся к поиску в Google и вернулся сюда и использовал следующий код;
import requests
from requests_oauthlib import OAuth1
request_token_url = 'https://openapi.etsy.com/v2/oauth/request_token?scope=transactions_r&listings_w&billing_r&treasury_r'
consumer_key = 'api_key'
consumer_secret = 'secret_key'
oauth = OAuth1(consumer_key, client_secret=consumer_secret)
r = requests.post(url=request_token_url, auth=oauth)
r.content
login_url = HTTPS%6%3fthe%26address%26you%2fwant%34goodluck
и это сработало!!!!!! Я так счастлива! Если у вас есть другие нубы, как я, возможно, они могут помочь им с этим кодом.
В терминале я создал virtualenv, затем я установил запросы pip и request_oauthlib, затем в оболочке python выполнил вышеуказанный скрипт.
С уважением, Пол