2011-12-07 39 views
8

我已經完成了我的應用程序,然後在3個FB賬戶上嘗試過,並且沒有問題,但是 但和有永久性錯誤(它無法獲得訪問令牌):FB錯誤:預期1'。'在明信片和有效載荷之間的輸入中

com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: Expected 1 '.' In the input between the postcard and the payload.

我試圖刪除應用程序,並重新安裝在這個帳戶幾次,沒有任何改變。

我使用Java和restFB客戶端。

這是我得到的訪問令牌代碼:

if (request.getParameter("code") != null) { 
    String code = request.getParameter("code"); 
    String url = "https://graph.facebook.com/oauth/access_token?" 
     + "client_id=" + clientId + "&" + "client_secret=" 
     + clientSecret + "&" + "code=" + code + "&" + "redirect_uri=" 
     + redirectURL +"&type=web_server"; 
    String accessToken=readUrl(url).split("&")[0].replaceFirst("access_token=", ""); 
    //.... 
} 

我看到here有人用了同樣的錯誤,他說,解決辦法是:

replacing "|" with "%257C" which made my access token invalid"

我真的不能明白他的意思。

回答

1

可能值得記錄對/oauth/access_token請求的響應以及您提取用作訪問令牌的值。

對於不起作用的帳戶,請檢查/oauth/access_token響應是否包含access_token之前的其他參數。像

expiry=86400&access_token=AAAxxxx 
0

IIRC我見過的回答,我遇到了同樣的問題,和調試我唯一的結論後,在引發此消息時,它可能只是令牌已過期或無效。使用新生成的令牌進行檢查不應該引發此錯誤。

1

檢查以確保您在簽署請求前驗證Facebook返回的「代碼」參數,而不是「訪問令牌」。那是我犯的錯誤。