Ошибка при получении токена аутентификации uber

Получение токена авторизации от uber - это двухэтапный процесс. См. Uber Auth API.

  1. Попросите пользователя uber авторизоваться: вызовите GET https://login.uber.com/oauth/v2/authorize?response_type=code&client_id=%7Bclient_id%7D&redirect_uri=%7Bredirect_uri%7D.

Укажите свой client_id и redirect_uri для своего веб-сайта. Если авторизация прошла успешно, вы будете перенаправлены на ваш сайт с кодом в параметре запроса.

  1. Код, который вы получили на шаге 1 для получения токена аутентификации. Отправьте HTTP-запрос POST на адрес https://login.uber.com/oauth/v2/token. Следующим должен быть json, который вы отправляете на сервер:

    {"client_secret": "{client_secret}", "client_id": "{client_id}", "grant_type": "{authorization_code}", "redirect_uri": "{redirect_uri}", "code": "{вставьте код авторизации получено на предыдущем шаге} "}

На втором шаге я всегда получаю сообщение об ошибке 400 с сообщением «недопустимый тип предоставления». Пожалуйста, подскажите, в чем я ошибаюсь.


person Arindam Ghosh    schedule 22.02.2016    source источник


Ответы (2)


Вам нужно отправить параметр как данные формы, а не JSON. Взгляните на пример curl в разделе 3 здесь: https://developer.uber.com/docs/authentication

person Richard Artoul    schedule 22.02.2016

В документации по авторизации и аутентификации ничего не упоминается о JSON, поэтому application / x-www-form-urlencoded media type должен использоваться для отправки HTTP POST запрос к / oauth / v2 / token Конечная точка API

person Alex Bitek    schedule 24.02.2016
comment
Сообщение в / oauth / v2 / token действительно требует contentType = application / x-www-form-urlencoded Но документы uber api сбивают с толку, потому что в них утверждается, что Uber API говорит исключительно в JSON. ref: developer.uber.com/docs/riders/references/api#json < / а> - person Jonathan Harris; 27.11.2018