2012-05-22 3 views
9

¿Es posible extender el token de acceso de 60 días? Leí en alguna parte que cuando un usuario visita su sitio puede extenderse? (por otros 60 días)? ¿Será este el mismo token o un nuevo token por completo?Extender token de acceso de Facebook después de 60 días

Básicamente quiero offline_access como solía ser. Tengo un pequeño script jquery que muestra el muro de Facebook del usuario en su propio sitio.

también leí esto:

"" Usted tendrá que obtener al usuario volver a autenticar de nuevo el plazo de 60 días para tomar un nuevo token." --- No. Siempre y cuando no se publish_stream domésticos - que Don. No necesita ningún token de usuario. Hasta que el usuario elimine la aplicación de la lista de aplicaciones, puede publicar los mensajes, incluso después de 100 años. Por lo tanto, no, no hay razón para continuar con ningún token, además de la clave de la aplicación y el secreto. zerkms 5 de abril en 9:02 "

¿Es esto cierto? Obviamente no necesito permisos de publicación, solo quiero leer los permisos de transmisión.

--update:

Presupuesto de FB:

"Si desea actualizar una señal_acceso larga vida todavía válida, tendrá que obtener un nuevo usuario de corta duración señal_acceso primero y luego llame al mismo punto final a continuación. El access_token devuelto tendrá un nuevo tiempo de caducidad de larga duración, sin embargo, el access_token puede o no ser el mismo que el access_token de larga duración previamente otorgado "

Entonces, ¿cómo se obtiene exactamente? un token completamente nuevo? El método FB.login simplemente devuelve el token existente (no caducado). ¿Algunas ideas?

+1

Espero @zerkms ha probado y verificado su declaración de "100 años" ... ;-P – deceze

Respuesta

3

No No puede extender el token de los 60 días, solo puede extender los tokens de vida corta y cuando lo hace obtiene uno de vida larga que es de 60 días.

También puede tener todos los permisos, pero a menos que tenga un token de acceso válido, entonces no puede realizar solicitudes de API (bueno, puede obtener una excepción).

no estoy seguro de cómo obtener los 60 días modo, si es el lado del cliente (y luego extenderla) o en el lado del servidor, pero de acuerdo con el puesto Removal of offline_access permission oficial:

Escenario 3: del lado del servidor de OAuth Desarrolladores

...

Si se realiza la llamada, mientras que todavía hay una señal_acceso usuario de larga duración válida para ese usuario , el usuario devuelto señal_acceso de esta segunda llamada ma y sea el mismo o puede haber cambiado, pero en cualquier caso, el tiempo de caducidad se establecerá en en un tiempo de caducidad prolongado.

O

Escenario 4: OAuth del lado del cliente y ampliación de tiempo de espera a través señal_acceso nuevo punto final

....

Tenga en cuenta que el punto final solo se puede utilizar para ampliar el período de usuario access_tokens. Si pasa un access_token que tuvo un tiempo de caducidad prolongado , el punto extremo simplemente pasará el mismo access_token de nuevo sin alterar ni extender el tiempo de caducidad.

...

+0

Gracias, ¿qué pasa si estamos 50 días en, el usuario llega a la aplicación y quiere ampliarlo ? ¿No es posible entonces? ¿El usuario debe volver _después de que el token haya caducado? – Wesley

+0

"Si desea actualizar un access_token de larga duración válido, deberá obtener primero un nuevo usuario efímero access_token y luego llamar al mismo endpoint a continuación. El access_token devuelto tendrá un nuevo tiempo de caducidad de larga duración, sin embargo, el access_token mismo puede o no ser el mismo que el access_token de larga duración previamente otorgado " Entonces, ¿cómo exactamente obtienes un token completamente nuevo? El método FB.login simplemente devuelve el token existente (no caducado). ¿Algunas ideas? – Wesley

+0

(1) Dice que "access_token en sí mismo puede o no ser el mismo que el access_token de larga duración previamente otorgado", ¿ha marcado si puede ampliarlo? (2) Quizás utilice la autenticación del lado del servidor, de esa manera puede obtener 60 días más cuando lo desee. –

3

Para extender el token de acceso de caducidad utilización fecha,

https://graph.facebook.com/oauth/access_token?    
client_id=APP_ID& 
client_secret=APP_SECRET& 
grant_type=fb_exchange_token& 
fb_exchange_token=EXISTING_ACCESS_TOKEN 

Para más detalles echar un vistazo en http://developers.facebook.com/roadmap/offline-access-removal/

1

Se puede utilizar el siguiente código utilizando el SDK de PHP

$extendedToken = $facebook->setExtendedAccessToken(); 
$token = $facebook->getAccessToken(); 
print_r($token); 

Después de que el usuario haya iniciado sesión y le haya proporcionado los permisos necesarios. También puede recuperar el acceso extendidas otras muestras, como por página, después simplemente usando Graph llamada a la API

$facebook->api('<PAGE_ID>?fields=access_token'); 

Esto devolverá el token de acceso extendida para la página. Siempre que haya solicitado el permiso de manage_page.

0

Sujathan es correcta - no es una página de Facebook documentar qué hacer desde el cambio: http://developers.facebook.com/roadmap/offline-access-removal/

enviar una solicitud GET a la siguiente dirección:

https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN 

Además, parece que se trata de una duplicar: How to extend access token validity since offline_access deprecation

Cuestiones relacionadas