【问题标题】:OAuth request_token for Etsy problem with URL construction用于 URL 构造的 Etsy 问题的 OAuth request_token
【发布时间】:2019-02-28 06:22:30
【问题描述】:

我正在尝试创建一个应用程序来使用 python3 访问 Etsy api,我正在 idle3 中测试我的非常基本的代码,我需要获取一个 oauth 令牌,我查看了 etsy 文档here,但所有内容都描述为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 here 但我不确定这是否会给我时间戳和随机数。 非常感谢所有建议,我正在关注 miguel grinberg 的烧瓶教程,我的 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'

问候 保罗

【问题讨论】:

    标签: python-3.x oauth nonce etsy


    【解决方案1】:

    我写信给 etsy 开发人员,他们回来了一些 php 代码,我对 python 知之甚少,但不知道 PHP, 于是我又回去搜索google,又回到here,使用如下代码;

    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 shell 中执行了上面的脚本。

    问候保罗

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 2016-02-08
      • 2014-06-13
      相关资源
      最近更新 更多