Я пытаюсь получить токен доступа для входа в Facebook, но вместо этого получил ошибку. Все ответы, которые я нашел, рассказывают мне о неправильном формате redirect_uri. Это ошибка я получил:Facebook Ошибка OAuth: Ошибка проверки кода подтверждения
{
"error": {
"message": "Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request",
"type": "OAuthException",
"code": 100,
"fbtrace_id": "Ht12b5BKgRK"
}
}
А вот редирект URI зарегистрирован в Facebook App.
Шаги, которые я делаю:
- https://graph.facebook.com/oauth/authorize?client_id=APP_ID&redirect_uri=http://127.0.0.1:8080/MyProject/Mapping&scope=user_posts&response_type=code
- Эта ссылка перенаправляет меня http://127.0.0.1:8080/MyProject/Mapping?code=GENERATED_CODE
- Затем в коде я генерировать следующий URI: https://graph.facebook.com/oauth/access_token?client_id=549422435210997&redirect_uri=http://127.0.0.1:8080/MyProject/Mapping&client_secret=CLIENT_SECRET&code=GENERATED_CODE
- запрашивающая этот URI дает мне ошибку вместо
access_token
Я тоже попытался redirect_uri=http://127.0.0.1:8080/MyProject/Mapping/
. Все еще никаких результатов.
Кроме того, я использовал те же шаги, используя библиотеку restFB для Java. И получил ту же ошибку.
ScopeBuilder scopeBuilder = new ScopeBuilder();
scopeBuilder.addPermission(UserDataPermissions.USER_POSTS);
FacebookClient client = new DefaultFacebookClient(Version.LATEST);
String loginDialogUrlString = client.getLoginDialogUrl(APP_ID, "http://127.0.0.1:8080/MyProject/Mapping", scopeBuilder);
System.out.println(loginDialogUrlString);
System.out.println();
AccessToken appAccessToken = client.obtainAppAccessToken(APP_ID, APP_SECRET);
System.out.println(appAccessToken.getAccessToken());
System.out.println(appAccessToken.getTokenType());
//On this step i got the same error
AccessToken userAccessToken = client.obtainUserAccessToken(APP_ID, APP_SECRET, "http://127.0.0.1:8080/MyProject/Mapping/", appAccessToken.getAccessToken());
System.out.println(userAccessToken.getAccessToken());
Спасибо за ваш ответ, но я попытался кодировать URL-адрес и не получил никаких результатов. –
Это кодированный URL-адрес, который дает мне такую же ошибку в браузере: https://graph.facebook.com/oauth/access_token?client_id=APP_ID&redirect_uri=http%3A%2F%2F127.0.0.1%3A8080%2FMyProject%2FMapping % 2F & client_secret = CLIENT_SECRET –
Когда я пытаюсь реализовать его, код, который я получил «redirect_uri», не является абсолютным URI. Проверьте RFC 3986. (код 191, подкод null) ' –