簡體   English   中英

Facebook OAuth 錯誤:驗證驗證碼時出錯

[英]Facebook OAuth error: Error validating verification code

我正在嘗試獲取 Facebook 登錄的訪問令牌,但出現錯誤。 我找到的所有答案都告訴我有關錯誤的 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 App 中注冊的重定向 URI。 在此處輸入圖片說明

我做的步驟:

  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 庫綁定了相同的步驟。 並得到同樣的錯誤。

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 的部分進行編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM