2009-03-05 12 views
10

Estoy usando Facebooker con Rails para conectar mi aplicación a Facebook. Puedo dirigir al usuario a través del proceso de autorización y mediante el proceso de otorgar acceso sin conexión a mi aplicación.Cómo obtener acceso offline_access para trabajar con Facebook

¿Cómo realizo el acceso a la información sin conexión? ¿Hay alguna manera de solicitar una session_key que no expire y que pueda usar en un momento posterior, siempre que el usuario no haya revocado los permisos de mi aplicación en Facebook?

Cualquier ayuda muy apreciada. El consejo no necesita ser específico de los rieles.

Respuesta

0

EDIT: apparently, otorgando "acceso_a_la_exclución" todavía le da (y continuará haciéndolo) una clave de sesión infinita. simplemente guarde esta clave especial y úsela en su llamada a Status.get, etc., vea here para obtener un ejemplo de código (PHP).

http://wiki.developers.facebook.com/index.php/New_Design_User_Login:

muchas llamadas a la API ya no requieren claves de sesión

así que si su aplicación se concede offline_access, puede utilizar llamadas de API listed here sin session_key.

Y estamos cambiando más métodos para que no necesitará una clave de sesión para hacer algo cuando el usuario está en línea, gusta enviar una notificación.

+0

Gracias por la información sobre las funciones que no requieren una clave de sesión. Lamentablemente, los métodos que necesito requieren una session_key que no caduca. – Mattew

+0

¿Qué métodos serían? –

+0

El método User.getSession. Estoy tratando de recuperar su flujo de actualizaciones de estado. – Mattew

2

Una vez que solicite, y se conceda, el acceso sin conexión a la clave de sesión que obtiene en los parámetros HTTP POST de Facebook (fb_sig_session_key) no tendrá vencimiento.

Puede verificar que tiene dicha clave marcando el parámetro fb_sig_expires; si es "0", la clave de sesión no tiene vencimiento.

Si usted tiene una auth_token entonces se puede llamar getSession para obtener la clave de sesión y comprobar el campo expires:

var auth = _auth.getSession(AuthToken); 
string sessionKey = auth.session_key; 
long uid = auth.uid; 
bool expires = auth.expires > 0; 
+2

Hola Mark: gracias por la información. ¿Sabe si la clave de sesión cambia después de que se le otorgue acceso sin conexión? En Facebooker, la clave de sesión que recibo parece ser la misma que la que comencé, y tiene un vencimiento. Matt – Mattew

0

Una vez que se obtiene el permiso de acceso fuera de línea de un usuario, el truco es llamar con un filter_key parámetro de 'red'.

En PHP, que es:

$feed = $facebook->api_client->stream_get($uid, '', '', '', 20, 'network', ''); 

Pruébalo, funciona ....

1

Acabo de hacer un tutorial en mi blog con una explicación paso a paso sobre cómo acceder a la línea de usuario datos. Supone que estás trabajando con RoR y el complemento Facebooker.

Cuestiones relacionadas