eBay API - автоматизация oAuth - PullRequest
0 голосов
/ 28 ноября 2018

В настоящее время у меня возникают проблемы с методом OAuth для получения токена для потока предоставления кода авторизации.Я разрабатываю приложение на Python, чтобы автоматизировать определенные функции в моем магазине eBay.Мне удалось получить доступ с потоком предоставления клиентских учетных данных, но в моем случае недостаточно авторизации.

Теперь я хочу получить токен доступа с потоком предоставления кода авторизации, но не могуполучить код авторизации на первом этапе («Получение согласия сторонней организации на основании документации).Я пытался получить этот код авторизации в своем браузере, а затем использовать его в своем приложении, но у меня есть ошибка безопасности, сообщающая, что этот токен уже использовался, достаточно справедливо, это безопасность.

Я знаю, что яМне нужно отправить мои учетные данные, чтобы получить этот код авторизации, но я не знаю, как я могу обработать redirectUrl для разрешения пользователя.Вот что я сделал:

 def GetAuthToken():


     headers = {


     'client_id' : 'xxxxxxx',
     'redirect_uri' : 'xxxxx',
     'response_type' : 'code',
      'scope' : 'https://api.ebay.com/oauth/api_scope/sell.inventory',

 }    

     tokenURL = 'https://auth.ebay.com/oauth2/authorize'

     response = requests.get(tokenURL, headers=headers)
     print(response)
     authDict = response.json()


     print(authDict)


 GetAuthToken()

И я получаю эту ошибку:

Response [200]
{'error_id': 'unauthorized_client', 'error_description': 'The OAuth client was not found.', 'http_status_code': 401}

Это нормально, учитывая, что API ожидает учетные данные.Мой вопрос: как я могу аутентифицироваться, чтобы получить этот код авторизации с моей программой на python?В документации (https://developer.ebay.com/api-docs/static/oauth-consent-request.html), указано, что пользователю необходимо войти в систему вручную, чтобы получить этот код авторизации первого шага. Однако мне нужно автоматизировать эту аутентификацию.

Как отправлять параметры учетных данных вAPI для автоматизации этого шага?

В настоящее время я просматриваю библиотеку Python OAuth2, чтобы посмотреть, что я могу с этим сделать, я уверен, что это поможет. Я дам вам знать, ребята, если я найдуспособ автоматизировать это.

В любом случае, заранее спасибо за вашу поддержку! :)

1 Ответ

0 голосов
/ 03 января 2019

В типичном потоке OAuth 2.0 конечный пользователь, который авторизует приложение, должен войти в систему и дать согласие на получение доступа к приложению.Как только вы вернете код авторизации в URL-адресе обратного вызова, его можно будет обменять на токен обновления и доступа для областей, запрошенных в авторизации изначально.

https://developer.ebay.com/api-docs/static/oauth-authorization-code-grant.html

eBayтакже имеет простую библиотеку, которая заботится о генерации URL авторизации, обмене кода на токен и т. д., доступна в Github

Здесь также есть хороший ответ - eBayoauth токен и токены обновления

...