【发布时间】:2017-10-18 05:09:28
【问题描述】:
我这周大部分时间都在研究 ebaySDK。我已经设法将交易和购物 API 集成到我的项目中。对于交易 API,我使用的是 Auth n Auth 令牌,有效期最长为 18 个月。我需要用于 Sell API 的 OAuth 令牌仅在一天内有效,因此我需要在它过期之前定期获取它。 我遵循了网站上的文档,甚至尝试在 github 上查看 python 存储库,但我还没有能够继续前进。这是我的请求代码的快速 sn-p,我做错了什么?
import requests, json, base64, xmltodict
AppSettings = {
'app_id' : 'my_app_id',
'app_secret' : 'my_app_secret',
'dev_id': 'my_dev_id',
'ruName': 'the_ruName_for_my_app'
}
authHeaderData = AppSettings['app_id']+':'+AppSettings['app_secret']
encodedAuthHeader = base64.b64encode(authHeaderData)
session = requests.Session()
print encodedAuthHeader
url = 'https://api.ebay.com/identity/v1/oauth2/token'
session.headers.update({
'Content-Type':'application/x-www-form-urlencoded',
'Authorization':'Basic '+encodedAuthHeader
})
data = {
'grant_type':'client_credentials',
'redirect_uri': AppSettings['ruName'],
'scope':'https://api.ebay.com/oauth/api_scope'
}
response = session.post(url, data=data).json()
print response
我得到的回应是:
{u'error_description': u'client authentication failed', u'error': u'invalid_client'}
我检查了所有的钥匙。我什至尝试通过 ebay 提供的生产登录来获取令牌,但无济于事。我从 ebay 提供的 url 得到的响应是 html 和 js 代码(没有 JSON 或任何数据)。
有人遇到过类似的问题吗?我该如何解决这个问题?我是否提出了错误的请求?非常感谢任何见解
【问题讨论】:
-
好的,经过一些更适当的研究和深入研究文档后,我在 eBay 论坛上偶然发现了这个答案,它基本上打破了这个过程。 forums.developer.ebay.com/questions/18489/… 所以现在对于 oauth 用户令牌,我要去 eBay 提供的登录链接并为用户填写登录信息。让我们看看接下来会发生什么。
-
你能通过吗?您需要每 2 小时进行一次登录过程吗?
-
@mentorgashi 不,我不需要每隔几个小时登录一次,因为响应会在令牌旁边给我一个刷新令牌。我可以在令牌过期时使用刷新令牌生成新令牌
-
你解决了吗?
-
@Jobs 你能用你的最终解决方案回答你的问题吗?
标签: python django oauth ebay-api