java - Facebook OAuth 错误 : Error validating verification code

标签 java facebook-graph-api oauth facebook-apps restfb

我尝试获取 Facebook 登录的访问 token ,但出现错误。我找到的所有答案都告诉我有关错误的redirect_uri 格式。 这是我得到的错误:

{
   "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"
   }
}

这是在 Facebook 应用程序中注册的重定向 URI。 enter image description here

我所做的步骤:

  1. 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
  2. 此链接将我重定向到 http://127.0.0.1:8080/MyProject/Mapping?code=GENERATED_CODE
  3. 然后在代码中我生成下一个 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
  4. 请求此 URI 会出现错误,而不是 access_token

我也尝试过redirect_uri=http://127.0.0.1:8080/MyProject/Mapping/。仍然没有结果。

此外,我使用 Java 的 RestFB 库绑定(bind)了相同的步骤。并得到同样的错误。

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());

最佳答案

当我这样做时,让我困扰的一件事是确保redirect_uri是URL编码的。在 Java 中,我的代码做了类似的事情:

import java.net.URLEncoder;

URLEncoder.encode("http://127.0.0.1:8080/MyProject/Mapping", "UTF-8") 

我的重定向 URL。不要对整个 URL 进行编码,仅对您的redirect_uri 部分进行编码。

关于java - Facebook OAuth 错误 : Error validating verification code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774231/

相关文章:

java - 无法从 Graph API 创建相册

php - API应该消耗自己还是直接调用数据库获取其他资源?

java - 如何结合 OAuth 根据请求添加角色过滤器

authentication - Google-Oauth 身份验证错误

java - 如何使用 POI api 在 Java 中访问受密码保护的 Excel 工作簿

java - 将图像从sql数据库插入Jtable

Facebook API 错误代码 : 100 Error Message: Viewer cannot message specified recipients

ios8-Facebook sdk-如何使用 UIWebView 打开应用程序请求 url

java - 如何使通知在一周内且仅在特定时间出现?

java - 如何在 actionPerformed() 中更新 JFrame?