2017-06-20 62 views
1

我試圖使用this guide來獲取訪問令牌。使用python請求獲取易趣訪問令牌(交換身份驗證令牌)

這裏是我的主文件:

import requests 

from utils import make_basic_auth_header, conf 
code = '<Auth code here>' 
url = "%s/identity/v1/oauth2/token" % conf('EBAY_API_PREFIX') 
headers = { 
     'Content-Type': 'application/x-www-form-urlencoded', 
     'Authorization': make_basic_auth_header() 
    } 

data = { 
    'grant_type': 'authorization_code', 
    # 'grant_type': 'refresh_token', 
    'state': None, 
    'code': code, 
    'redirect_uri': conf('EBAY_RUNAME') 
} 
r = requests.post(
    url, 
    data=data, 
    headers=headers, 
) 

這裏的make_basic_auth_header()功能:

def make_basic_auth_header(): 
    auth_header_payload = '%s:%s' % (conf('EBAY_APP_ID'), conf('EBAY_CERT_ID')) 
    auth_header_base64 = base64.b64encode(auth_header_payload) 
    auth_header = 'Basic %s' % auth_header_base64 
    return auth_header 

但所有我在r.json()得到的是:

{u'error_description': u'request is missing a required parameter or malformed.', u'error': u'invalid_request'} 

我很沮喪 - 什麼我做錯了嗎?

+0

此外:我的文件有python2字符串 - 不是unicode。我也嘗試切換到Unicode - 它沒有幫助 –

+0

你有沒有試過將數據字典作爲JSON格式的字符串傳遞?例如。在'import json''data = json.dumps(data)'之後 – etemple1

回答

1

對不起,我很愚蠢,我沒有在ebay上看到tickbox。 here's the tickbox, after I've clicked it

相關問題