2011-12-07 36 views
8

He terminado mi aplicación y luego he intentado en 3 cuentas de FB y estaba bien, pero el 0 tiene un error permanente (no puede obtener un token de acceso):Error de FB: se esperaba 1 '.' en la entrada entre la postal y la carga

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

He intentado eliminar la aplicación e instalarla nuevamente en esta cuenta varias veces y nada ha cambiado.

Uso Java y el cliente restFB.

Este es el código donde consigo el token de acceso:

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

vi here a alguien con el mismo error, dijo que la solución era:

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

realmente no pude entiende lo que quiere decir

Respuesta

1

Probablemente valga la pena registrar la respuesta a la solicitud /oauth/access_token y el valor que extrae para usar como el token de acceso.

Para la cuenta que no funciona, compruebe si la respuesta /oauth/access_token incluye otros parámetros antes de access_token. IIRC que he visto respuestas como

expiry=86400&access_token=AAAxxxx 
0

que experimentan el mismo problema, y ​​después de depurar mi única conclusión fue que cuando se lanza este mensaje puede que solo sea el token ha caducado o no válido. Verificar con un token recién generado no debería arrojar este error.

1

Comprueba que estás verificando el parámetro "código" devuelto por Facebook antes de firmar la solicitud, no el "token de acceso". Ese fue el error que cometí.

Cuestiones relacionadas