2011-12-07 9 views
8

ho finito la mia app e poi l'ho provato su 3 account FB ed era ok, ma il 4 th ha un errore permanente (non può ottenere un token di accesso):Errore FB: Previsto 1 '.' nell'input tra la cartolina e il payload

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

Ho provato a rimuovere l'app e installarlo di nuovo su questo account alcune volte e non è cambiato nulla.

Uso Java e client restFB.

Questo è il codice in cui ottengo il token di accesso:

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=", ""); 
    //.... 
} 

ho visto here qualcuno con lo stesso errore, ha detto che la soluzione era:

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

non ho potuto veramente capisci cosa intende

risposta

1

Probabilmente vale la pena registrare la risposta alla richiesta /oauth/access_token e il valore estratto da utilizzare come token di accesso.

Per l'account che non funziona, verificare se la risposta /oauth/access_token include altri parametri prima di access_token. risposte IIRC ho visto come

expiry=86400&access_token=AAAxxxx 
0

provo lo stesso problema, e dopo il debug la mia unica conclusione è stata che quando viene generata questo messaggio potrebbe essere solo il token è scaduto o non valido. Il controllo con un token appena generato non dovrebbe generare questo errore.

1

Verificare di verificare il parametro "codice" restituito da Facebook prima di firmare la richiesta, non il "token di accesso". Questo è stato l'errore che ho fatto.