Ошибка redirect_uri is invalid в OAuth2
Пробую создать Standalone-приложение на Java для работы с VKApi.
В документации прочитал, что для получения UserAuthResponse необходимо передать в качестве аргумента redirectUri следующую ссылку: https://oauth.vk.com/blank.html
Но когда я пробую ее передать, возникает ошибка:
Internal API server error. Wrong status code: 401. Content: {"error":"invalid_grant","error_description":"redirect_uri is invalid, please pass same redirect_uri, you used in authorize method."}
Вот мой код:
TransportClient transportClient = new HttpTransportClient();
VkApiClient vk = new VkApiClient(transportClient);
UserAuthResponse authResponse = null;
try {
authResponse = vk.oAuth()
.userAuthorizationCodeFlow(51484448,
"clientSecret",
"https://oauth.vk.com/blank.html",
"code")
.execute();
} catch (ApiException | ClientException e) {
e.printStackTrace();
}
Вместо clientSecret у меня вставлен код, который я взял со страницы приложения, а code я получил, когда выполнил запрос по типу:
https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=http://example.com/callback&scope=friends&response_type=code&v=5.131
Ответы (1 шт):
Он у вас ругается, что redirect_uri первого запроса (где вы получали code) и второго запроса (уже в коде) отличается. Для правильной работы, code нужно получать по ссылке такого вида: https://oauth.vk.com/authorize?client_id=51484448&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends&response_type=code&v=5.131. Таким образом всё должно заработать.