rails developers appi ruby-on-rails facebook

ruby on rails - developers - Obtener offline_access para trabajar con Facebook



rails devise omniauth facebook (4)

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 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.


EDITAR: aparentemente , otorgar "acceso_de_conexión" aún 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 aquí un ejemplo de código (PHP).

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

muchas llamadas API ya no requieren claves de sesión

por lo tanto, si se concede acceso a su aplicación offline_access, puede usar las llamadas API que se enumeran aquí sin una session_key.

Y estamos cambiando más métodos para que no necesite una clave de sesión para hacer algo cuando el usuario está desconectado, como enviar una notificación.


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

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

Si tiene auth_token, puede llamar a getSession para obtener la clave de sesión y verificar el campo expirado:

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


Una vez que obtiene el permiso de acceso sin conexión de un usuario, el truco es llamar con un parámetro filter_key de ''red''.

En PHP, es:

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

Pruébalo, funciona ...


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