Ошибка при создании access_token с использованием REST API Ebay - запросы Python - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь использовать ebay REST-API для первого.Я просто пытаюсь сгенерировать access_token, используя запрос на предоставление учетных данных клиента.Я следовал инструкциям здесь https://developer.ebay.com/api-docs/static/oauth-client-credentials-grant.html

HTTP method:   POST
  URL (Sandbox): https://api.sandbox.ebay.com/identity/v1/oauth2/token

  HTTP headers:
    Content-Type = application/x-www-form-urlencoded
    Authorization = Basic <B64-encoded_oauth_credentials>

  Request body (wrapped for readability):
    grant_type=client_credentials&
    redirect_uri=<RuName-value>&
    scope=https://api.ebay.com/oauth/api_scope

Я получаю эту ошибку: {'error': 'invalid_client', 'error_description': 'client authentication failed'}, и мой код выглядит так:

path = 'https://api.sandbox.ebay.com/'
app_json = 'application/json'

headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization': base64.b64encode(b'Basic CLIENT_ID:CLIENT_SECRET')

}

payload = 'grant_type=client_credentials&redirect_uri=Searchez&scope=https://api.ebay.com/oauth/api_scope'

def get_oath_token():
    url = 'https://api.sandbox.ebay.com/identity/v1/oauth2/token'
    r = requests.post(url, headers=headers, data=payload)
    print(r.json())

get_oath_token()

Что я настроил неправильно?Благодаря.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Вы base64 кодируете "Basic" и не должны быть.В документе говорится, что просто закодируйте свой идентификатор клиента + ":" + Client Secret, и оставьте слово "Basic" и пробел после него один.

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

В вашем коде я вижу URI конечной точки песочницы, но в объеме тела запроса вы использовали рабочий URL вместо песочницы

...