71 votes

Jetons d'accès aux pages Facebook - expirent-ils ?

Je suis en train de créer une application qui permet aux utilisateurs d'administrer leurs pages de fans Facebook. Cela nécessite les deux jetons d'accès suivants :

  1. Un jeton d'accès utilisateur
  2. Un jeton d'accès à la page

Je suis assez familier avec les jetons d'accès utilisateur, mais pas avec les jetons d'accès page.

Quelqu'un sait-il combien de temps le jeton d'accès à la page reste valide ? Tout ce que je peux trouver sur le site web de Facebook est ce paragraphe succinct qui ne mentionne rien au sujet de son expiration.

Puis-je supposer que si je demande le jeton d'accès de l'utilisateur avec l'option offline_access le jeton d'accès à la page durera également indéfiniment (à moins que l'utilisateur ne change son mot de passe ou n'annule manuellement l'autorisation de mon application) ?

Je pose la question parce que je veux savoir à quelle fréquence je dois interroger l'API graphique Facebook et acquérir des jetons d'accès aux pages. Dois-je les demander une seule fois lorsque l'utilisateur s'inscrit ? Ou dois-je les demander à chaque appel de l'API au cas où ils changeraient constamment ? Cette dernière solution est évidemment plus contraignante !

43voto

rmarscher Points 2542

Les jetons de page expirent lorsque le jeton d'accès expire pour l'utilisateur qui a généré le jeton de page. Edit 6.28.2013 : Si vous étendre le jeton d'accès de l'utilisateur et obtenir un nouveau jeton d'accès à la page pour l'utilisateur, ce jeton de page n'expirera pas à moins que l'utilisateur n'annule l'autorisation de votre application.

L'accès hors ligne est désormais obsolète, mais vous êtes autorisé à prolonger un jeton d'accès pour une durée de 60 jours. Si vous prolongez le jeton d'accès de l'utilisateur, les jetons de page générés à partir de ce compte utilisateur verront également leur expiration prolongée pour correspondre à n'expirera pas (édité le 6.28.2013). La valeur des jetons de page peut changer après avoir été prolongée, assurez-vous donc de récupérer les nouveaux jetons de page dans le dossier de l'utilisateur. /accounts connexion graphique après avoir étendu le jeton d'utilisateur.

Vous pouvez continuer à prolonger ces jetons d'accès une fois par jour. Vous devez donc régénérer les jetons d'accès chaque jour où l'utilisateur interagit avec votre application.

Voir https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens https://developers.facebook.com/docs/facebook-login/access-tokens/#extending https://developers.facebook.com/docs/facebook-login/
https://developers.facebook.com/roadmap/offline-access-removal/ https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

12voto

Simon.Ponder Points 336

Vous pouvez étendre un jeton d'accès de page pour qu'il n'expire jamais. La documentation est un peu confuse, mais les pages suivantes contiennent des informations pertinentes, et vous devrez évidemment être administrateur de la page. Portez une attention particulière aux scénarios 4 et 5 du deuxième lien.

https://developers.facebook.com/docs/reference/api/page/#page_access_tokens https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token

Il suffit d'utiliser l'explorateur de graphes pour récupérer les jetons de Facebook. L'explorateur de graphes vous permet également de déboguer le jeton qui affichera la date d'expiration, vous pouvez ainsi vérifier qu'il n'expire jamais. L'explorateur de graphes : https://developers.facebook.com/tools/explorer

Cliquez sur le bouton Obtenir un jeton d'accès pour récupérer votre jeton. En gardant votre identifiant dans la barre de requête, ajoutez simplement /accounts à votre identifiant, de sorte que cela ressemble à ceci : /123456789101112/accounts . Assurez-vous qu'il s'agit d'une requête GET (La liste déroulante à gauche de la barre de requête).

Cela permettra de récupérer toutes les pages avec lesquelles vous êtes configuré pour travailler. Vous devez ensuite effectuer une requête GET vers :

/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN 

Votre APP_ID et APP_SECRET se trouvent dans les paramètres d'administration de vos applications. Utilisez votre jeton d'accès personnel comme dernier paramètre (EXISTING_ACCESS_TOKEN). Vous obtiendrez un jeton d'accès personnel de 60 jours. Copiez ce jeton dans la barre de jeton d'accès, qui se trouve au-dessus de la barre de requête. Maintenant, faites une demande GET à USER_ID/accounts comme nous l'avons fait au début. Cette requête renverra à nouveau une liste de pages avec lesquelles vous êtes configuré pour travailler.

Mais cette fois, les jetons de page qui sont répertoriés avec les pages n'expirent pas. Vous pouvez le vérifier en copiant un jeton de page dans la barre des jetons d'accès, puis en cliquant sur le bouton Debug. Cela vous donnera des détails sur ce jeton d'accès, y compris le délai d'expiration, qui devrait être jamais dans ce cas.

UPDATE

J'ai également constaté que l'explorateur de graphes de Facebook s'embrouille parfois dans le contexte de l'utilisateur et n'est pas toujours fiable. Les alternatives sont Fiddler o Facteur .

4voto

rvaldron Points 71

Je ne sais pas si facebook a apporté des modifications pour corriger ces bugs ou non mais il semble que les jetons d'accès des utilisateurs n'expirent pas une fois que les jetons d'accès aux pages sont accordés à l'utilisateur. D'après mes tests, le flux se déroule comme suit :

  1. Demande d'un jeton d'accès utilisateur -> un jeton d'accès utilisateur de 60 jours est émis
  2. Jetons d'accès aux pages demandés -> jetons d'accès aux pages émis qui n'ont jamais expiré et le jeton d'accès initial de l'utilisateur est mis à niveau pour ne jamais expirer également.

J'espère que cela dissipe la confusion qui règne ici. J'ai testé ceci avec de nombreux utilisateurs différents dans notre application et je constate la même chose à chaque fois.

Si les jetons d'accès aux pages ne sont jamais demandés, le jeton d'accès original de l'utilisateur expirera après 60 jours.

2voto

Robin Jome Points 1477

Le jeton d'accès à la page Facebook est très similaire au jeton d'accès de l'utilisateur, sauf qu'il se fait passer pour l'administrateur de la page et permet de la gérer [l'autorisation manage_page est requise].

Si l'autorisation d'accès en ligne est accordée à l'application, le code d'accès de la page n'expirera pas. (sauf si l'utilisateur modifie son mot de passe ou annule manuellement l'autorisation de l'application).

Utilisez le lien suivant pour vérifier les détails d'un jeton d'accès émis.

https://developers.facebook.com/tools/debug/

1voto

Ananda Subasinghe Points 305

Voir ceci https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token D'après ceci, lorsque vous obtenez un jeton d'accès de courte durée et que vous l'étendez à un jeton d'accès de longue durée, cela n'expirera pas pour le jeton d'accès de page seulement. Voir le scénario 5 : jeton d'accès aux pages

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X