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:
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!
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/
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 .
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:
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.
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.
offline_access
est maintenant obsolète.Dans une autre question, j'explique Comment étendre le jeton d'accès aux pages .
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
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
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.