OAuth request_token для Etsy, проблема с созданием URL - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь создать приложение для доступа к 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 Ответ

0 голосов
/ 24 сентября 2018

Я написал разработчикам 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% 3ft% 26адрес% 26you% 2fwant% 34goodluck

и это сработало !!!!!!Я так счастлива!Если у вас есть какие-то другие нубы, как я, возможно, они могут помочь им с этим кодом.

В терминале я создал virtualenv, затем я установил pip-запросы и request_oauthlib, затем в оболочке python выполнил вышеуказанный скрипт.

С уважением, Пол

...