web-dev-qa-db-fra.com

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

Je construis 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 connais assez bien les jetons d'accès utilisateur, mais pas les jetons d'accès à la page.

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

Puis-je supposer que si je demande le jeton d'accès utilisateur avec l'autorisation offline_access, le jeton d'accès à la page durera également indéfiniment (sauf si l'utilisateur modifie son mot de passe ou supprime manuellement mon application)

Je demande parce que je veux savoir à quelle fréquence je devrais interroger l'API Graph de Facebook et acquérir des jetons d'accès à la page. Dois-je simplement les demander une fois lorsque l'utilisateur s'enregistre? Ou devrais-je leur demander un appel à chaque API si elles changent en permanence? Ce dernier est évidemment plus éprouvant!

69
dbau

Les jetons de page expirent à l'expiration du jeton d'accès pour l'utilisateur à partir duquel le jeton de page a été généré. Éditer 6.28.2013: Si vous étendez le jeton d'accès utilisateur et obtenez un nouveau jeton d'accès à la page pour l'utilisateur, ce jeton de page n'expirera que si l'utilisateur désautorise votre application.

L'accès hors ligne est maintenant obsolète, mais vous pouvez prolonger un jeton d'accès pour une durée de 60 jours. Si vous étendez le jeton d'accès de l'utilisateur, les jetons de page générés à partir de ce compte d'utilisateur auront également leur expiration prolongée pour correspondre n'expirera pas (Édité le 6.28.2013). La valeur des jetons de page pouvant changer après l’extension, veillez à saisir de nouveaux jetons de page à partir de la connexion graphique /accounts de l’utilisateur après l’extension du jeton de l’utilisateur.

Vous pouvez continuer à étendre 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/#pagetokenshttps://developers.facebook.com/docs/facebook-login/access-tokens/# extendhttps://developers.facebook.com/docs/facebook-login/
https://developers.facebook.com/roadmap/offline-access-removal/https://developers.facebook.com/blog/post/2011/05/13/ comment faire - handle-expired-access-tokens/

42
rmarscher

Vous pouvez étendre un jeton d'accès à la 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 un administrateur de la page. Portez une attention particulière aux scénarios 4 et 5 à la deuxième liaison.

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

Il est simple d'utiliser l'explorateur de graphes pour récupérer des jetons de Facebook. L'explorateur de graphes vous permet également de déboguer le jeton qui indiquera la date d'expiration. Vous pourrez ainsi vérifier qu'il n'expire jamais. 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, afin qu'il ressemble à ceci: /123456789101112/accounts. Assurez-vous qu’il s’agit d’une demande GET (liste déroulante située à gauche de la barre de requête).

Cela récupérera toutes les pages avec lesquelles vous êtes configuré pour travailler. Vous devez ensuite faire une demande GET à:

/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 paramètre final (EXISTING_ACCESS_TOKEN). Cela retournera un jeton d'accès personnel de 60 jours. Copiez ce jeton dans la barre de jetons d’accès, située au-dessus de la barre de requête. Maintenant, faites une requête GET à USER_ID/comptes comme nous l’avons fait au début. Cela retournera à nouveau une liste des pages avec lesquelles vous êtes configuré.

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

METTRE À JOUR

J'ai également constaté que l'explorateur de graphes de Facebook se confond parfois avec le contexte de l'utilisateur et peut ne pas être fiable à tout moment. Les alternatives sont Fiddler ou Postman .

12
Simon.Ponder

Je ne sais pas si Facebook a apporté des modifications pour résoudre ces problèmes, mais il semble que les jetons d'accès utilisateur n'expirent pas une fois que les jetons d'accès à la page ont été accordés à l'utilisateur. Sur la base de mes tests, le flux va comme ceci:

  1. Jeton d'accès d'utilisateur demandé - un jeton d'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 utilisateur initial est mis à niveau pour ne jamais expirer également.

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

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

4
rvaldron

Le jeton d'accès à la page Facebook est très similaire au jeton d'accès à l'utilisateur, à l'exception du fait qu'il "emprunte l'identité de l'utilisateur" en tant qu'administrateur de la page et permet de le gérer [l'autorisation requise pour la gestion de la page est requise]. 

Si l'autorisation Offline_access est accordée à l'application, la page access_token n'expire 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/

2
Robin
  • Les jetons d'accès aux pages par défaut sont de courte durée et expirent au bout d'une ou deux heures. Si vous souhaitez prolonger la durée de vie, vous devez prolonger le jeton d'accès de courte durée à un accès de longue durée afin qu'il dure environ 2 mois.
  • La permission offline_access est maintenant obsolète.
  • Le jeton d'accès n'expire pas lorsqu'un changement d'utilisateur est un mot de passe.

Dans une autre question, j'explique Comment étendre le jeton d'accès aux pages .

1
FR6

La documentation de Facebook sur le problème (jetons d'accès longue durée aux pages) ne correspond pas à ce qui se passe dans la réalité. La documentation affirme que les jetons d’accès aux pages acquis via des jetons d’accès utilisateur de longue durée ou de longue durée n'expireront jamais. Cependant, en réalité, ces jetons d'accès aux pages expirent dans 60 jours.

Voir le bogue Facebook: http://developers.facebook.com/bugs/461517520524921

1
rinogo

Voir ceci https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token Selon ce principe, lorsque vous obtenez un jeton d'accès de courte durée et que vous le prolongez pour vivre ce dernier expair pour uniquement le jeton d'accès à la page. Voir le scénario 5: jeton d'accès à la page

1

Les jetons d'accès aux pages ont expiré lorsque le jeton d'accès de l'utilisateur a expiré. Vous pouvez prolonger la durée du jeton d'accès utilisateur jusqu'à 60 jours afin de lui permettre de durer plus longtemps.

Consultez mon blog et suivez les instructions étape par étape pour obtenir un jeton d'accès étendu et obtenir les jetons d'accès de fanpage.

0
Thet Naing Swe