2011-06-15 14 views
5

Recientemente hemos tenido problemas con el inicio de sesión en Facebook. Como en cada usuario que haya iniciado sesión, podrá hacer una llamada gráfica a/me y luego conseguiremos dos errores:Facebook Oauth ¿Hay errores de excepción al cerrar la api del gráfico?

"mensaje": "Error validación de token de acceso: la sesión se ha invalidado porque el usuario ha cambiado la contraseña ". "mensaje": "Error al validar token de acceso: la sesión no coincide con la sesión almacenada actual. Esto puede deberse a que el usuario cambió la contraseña desde el momento en que se creó la sesión o Facebook ha cambiado la sesión por razones de seguridad".

El primero parece sucederle a los nuevos usuarios al iniciar sesión, y el segundo le sucede más a las personas que ya han autorizado nuestra aplicación. Parece que son capaces de obtener el nombre de usuario para la primera/me llamada de gráfico, y luego la ficha oauth se estropea durante mucho tiempo (algunos de ellos finalmente regresan por alguna razón).

Recientemente descubrí que nuestro código cierra dos veces el facebook para el yo/home JSON. Cuando saqué este código, pude presionar la API del gráfico a través de Rest y no me dio los errores.

He visto varios errores mencionando problemas con Facebook, pero el problema fue supuestamente "reparado" y es muy difícil ver por qué cerrar Facebook dos veces mataría a nuestro token de autenticación - pensarías que recibiríamos un mensaje sobre tasa de limitación.

¿Alguien tiene una explicación de lo que es esto? Todavía no he verificado que tomar la segunda llamada sea la solución, pero hasta ahora parece que sí.

+0

¿Puedes compartir si pudieras encontrar alguna solución/truco para eso? He estado enfrentando los mismos problemas, y todavía no resuelto aquí: http://stackoverflow.com/questions/6248173/facebook-access-token-invalid-with-mesage-session-does-not-match-current-stored – DhruvPathak

Respuesta

5

Me he encontrado con el mismo problema. Consulte este blog post sobre cómo tratar los tokens de acceso no válidos: explica cómo volver a autorizar al usuario.

Tengo la teoría de que las solicitudes se vuelven a enrutar una vez que llegan a su sistema y, por lo tanto, se ejecutan varias veces. No está comprobado, pero definitivamente tuve problemas donde solo estaba enviando 1 solicitud, pero 2 o 3 parecieron dispararse. Curiosamente, he visto que si proporciona una URL de devolución de llamada autorizada y alguien desinstala su aplicación, Facebook llamará a esa URL 3 veces. Eso hizo algunos registros interesantes ...

Desafortunadamente, desarrollar para Facebook es como el salvaje oeste ... no tiene ley y a menudo dicen una cosa y quieren decir otra (o en este caso afirman que algo está arreglado cuando no es así) t.)

+0

Gracias , es bueno escuchar que no soy solo yo! Creo que nuestra hipótesis actual es que estábamos siguiendo la misma URL gráfica de dos direcciones IP diferentes en sucesión. Tenga en cuenta que el error que obtuvimos terminó en "Facebook ha cambiado la sesión por razones de seguridad". Facebook probablemente tiene algunas cosas anti-spoofing en su lugar ... ¿Podría eso explicar tu problema también? –

Cuestiones relacionadas