Accès FB de longue durée-jeton permettant au serveur de tirer les informations de la page FB

je suis conscient qu'il y a beaucoup de questions sur les jetons D'accès Facebook et le chagrin qu'ils causent, mais malgré beaucoup d'expérimentation et de lecture de nombreux articles de blog (FB et autres), je suis toujours en difficulté pour obtenir une réponse claire à mes besoins. Permettez-moi de décrire succinctement mon processus jusqu'à présent:

  • je crée un site qui, côté serveur, doit tirer les messages/statuts d'une seule Page Facebook
  • je suis un administrateur de cette page Facebook
  • j'ai créé une application Facebook
  • en utilisant le Facebook Graph API Explorer , j'ai généré une clé de courte durée, connecté à mon application et mon compte, qui accorde la permission à mon compte pour voir les accès-jetons pour mes pages
  • j'ai converti ma clé de courte durée en une clé de longue durée (60 jours) scénario ala 4 de ce

et voilà où je suis coincé. Ma clé de 60 jours fonctionne très bien pour mon serveur de tirer les informations nécessaires à partir de la page, mais pour autant que je peux dire, il n'y a aucun moyen de programmatically étendre cette clé de 60 jours. Je ne sais pas non plus comment générer une nouvelle clé éphémère sans aller manuellement à L'API D'Explorateur de graphiques Facebook et en créer une.

puisque c'est mon serveur qui fait les requêtes à L'API Facebook et non un système basé sur l'utilisateur (où je pourrais facilement demander qu'un utilisateur autoriser à nouveau L'application Facebook), cela crée un système très clunky. Depuis Facebook déprécié offline_access , n'y a-t-il vraiment pas de façon permanente pour avoir mon serveur tirer des informations de ma propre page? Devrai-je vraiment créer une nouvelle clé à la main et mettre à jour manuellement mon serveur tous les 60 jours?

ou y a-t-il quelque chose que je manque?

mise à jour:

L'étape par guide pas à pas qui a été précédemment trouvé ici a été migré dans son propre réponse .

107
demandé sur Community 2012-08-29 02:31:19

4 réponses

ce sont les étapes qui étaient auparavant dans la question - ils ont été migrés à cette réponse.

ayant constaté qu'il est possible de générer un Token D'accès à la Page Facebook qui n'expire pas (avec l'aide de @Igy), voici un quide clair, étape par étape pour tous ceux qui cherchent à la même:

  1. assurez-vous que vous êtes l'administrateur de la page FB que vous souhaitez tirer info de
  2. créer une application FB (devrait être avec le même compte utilisateur que l'administrateur de page)
  3. Head over to the Facebook Graph API Explorer
  4. en haut à droite, sélectionnez L'application FB que vous avez créée dans la liste déroulante" Application
  5. Cliquez Sur "Get Access Token"
  6. assurez-vous d'ajouter la manage_pages permission
  7. Convertissez ceci un jeton d'accès de courte durée dans un jeton de longue durée en faisant cet appel D'API de graphique: https://graph.facebook.com/oauth/access_token?client_id=<your FB App ID >&client_secret=<your FB App secret>&grant_type=fb_exchange_token&fb_exchange_token=<your short-lived access token>
  8. Saisir le nouveau long-vécu jeton d'accès retourné
  9. faites un appel D'API de graphique pour voir vos comptes en utilisant le nouveau token d'accès de longue durée: https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
  10. gros access_token de la page, vous serez en tirant les infos de
  11. Lint le jeton pour voir qu'il est réglé sur Expires: Never !

cela devrait le faire. Vous devriez maintenant avoir un Token D'accès à la Page Facebook qui n'expire pas, à moins que:

  • vous changez le mot de passe de votre compte Facebook
  • vous perdez l'accès administrateur pour la page cible
  • vous supprimez ou désactivez votre application Facebook

L'un de ceux-ci entraînera la nullité du jeton d'accès.

si vous obtenez (#100) Tried accessing nonexisting field (accounts) on node type (Page) , allez à la Jeton d'Accès Débogueur , copiez la valeur de User ID , et l'utiliser pour remplacer le "moi" de l'URL à l'étape 9.

177
répondu redhotvengeance 2015-10-21 23:03:03

cette question est traitée dans le Offline Access deprecation document

utilisez le jeton de 60 jours pour l'administrateur de la page pour récupérer un jeton D'accès à la Page (via /PAGE_ID?fields=access_token ou /me/accounts ) - le jeton D'accès à la Page n'aura pas de date d'expiration

14
répondu Igy 2014-02-17 08:37:23

Merci beaucoup à @redhotvengeance pour le guide étape par étape.

après un certain temps, maintenant il est clairement décrit dans la documentation Facebook:

https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension

L'Extension De La Page Des Jetons D'Accès

les applications peuvent récupérer un token d'accès à la page des utilisateurs admin Page quand ils authentifiez avec la permission manage_pages. Si l'utilisateur l'accès jeton utilisé pour récupérer cette page jeton d'accès est de courte durée, la page jeton d'accès sera également de courte durée.

pour obtenir un token d'accès à la page de plus longue durée, échangez l'accès de L'utilisateur token pour une longue durée de vie, comme ci-dessus, puis demander l'accès à la Page jeton. Le token d'accès à la page qui en résulte n'aura pas de date d'expiration.

1
répondu Athlan 2017-08-25 19:34:31

vous pouvez également copier et passé du tableau de bord de l'application sur facebook. Les étapes:

  1. passer à https://developers.facebook.com

  2. Sélectionnez votre application dans le coin supérieur droit de la page (image de ce à quoi il ressemble)

  3. cliquez sur Messenger à partir des options à gauche (il ira à la configuration automatiquement) (pic de à quoi il ressemble)
  4. allez à la section" Génération de Tokens " dans la page. Sélectionnez la page pour laquelle vous voulez générer le token. (pic de ce que l'article ressemble)
  5. la copie et le jeton de votre page où que vous en ayez besoin.

gardez à l'esprit que bien qu'en théorie votre token n'expirera pas, qu'il est directement lié à ce que votre compte facebook a enregistré dans. Donc, si vous changez votre mot de passe ou si vous supprimez les permissions entre votre compte et votre application, alors votre token ne sera plus valide.

0
répondu Heidi 2017-10-27 16:40:48