URI перенаправления не соответствует зарегистрированному для клиентского приложения Mendeley API.

Я пытаюсь настроить стандартный процесс авторизации OAuth2 для API Mendeley из нашего веб-приложения Java. Вызывается следующий URL-адрес (в этом посте я вычеркнул свой идентификатор клиента):

https://api.mendeley.com/oauth/authorize?client_id=xxxx&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fapp%2Fconnect%2Fmendeley&scope=all&state=883-a0b43-6063e4bdfed3

но я получаю сообщение об ошибке:

{"error_message":"Redirection URI does not match the one registered for this application"}

Я проверил этот URI перенаправления на моей странице Mendeley «Мои приложения», и значение redirect_uri - это точно такая же строка символов, как показано на странице. Скажите, пожалуйста, что-то не так с этим URL-адресом или должна быть другая кодировка?

Спасибо за любой совет

Ричард


person otter606    schedule 26.11.2015    source источник


Ответы (1)


Это была моя ошибка - я экранировал URL-адрес в разделе MyApplications на веб-странице Mendeley dev. Таким образом, URL-адрес, который вы регистрируете в качестве обратного вызова, должен быть дословным URL-адресом веб-сайта - должен быть закодирован только параметр запроса URL-адреса перенаправления, который отправляется в запросе авторизации.

person otter606    schedule 01.12.2015
comment
Я борюсь с тем же. Я использую django, а не java. Я могу успешно получить код с моим redirect_url, но не могу обменять его на токен. Я закодировал в http-кодировке свою строку, которую я передаю, но не то, что я ввел на сайте Mendeley. Думаю, я сделал именно то, что сделал ты. Но все равно не повезло. Если у вас есть обновления, я буду рад их видеть. - person mightypile; 12.03.2016
comment
У меня такая же проблема с Rails. - person Ankit; 26.03.2017
comment
Правильный ответ. Я хотел бы подчеркнуть, что ваш обратный вызов должен быть дословным URL-адресом веб-сайта. В моем случае мы использовали https://www. вместо https:// - person Stéphane Bruckert; 20.02.2018