Jeton d’access longue durée FB pour le serveur permettant d’extraire les informations de la page FB

Je suis conscient qu’il y a beaucoup de questions à propos des access aux Facebook et du chagrin qu’ils causent, mais malgré beaucoup d’expérimentation et de lecture de nombreux articles de blog frustrants (FB et autres), j’ai du mal à répondre à mes besoins . Permettez-moi de briser brièvement mon processus jusqu’à présent:

  • Je crée un site qui, côté serveur, doit extraire les messages / statuts d’une seule page Facebook
  • Je suis un administrateur de cette page Facebook
  • J’ai créé une application Facebook
  • En utilisant l’ explorateur d’API de Facebook Graph , j’ai généré une clé de courte durée, connectée à mon application et à mon compte, qui autorise mon compte à afficher les jetons d’access à mes pages.
  • J’ai converti ma clé courte en une clé longue durée (60 jours) comme scénario 4

Et voici où je suis coincé. Ma clé de 60 jours fonctionne bien pour que mon serveur récupère les informations nécessaires sur la page, mais pour autant que je sache, il est impossible d’étendre par programmation cette clé de 60 jours. Je ne connais pas non plus de moyen de générer une nouvelle clé à durée de vie courte sans accéder manuellement à l’explorateur d’API Facebook Graph et en en créer un.

Étant donné que c’est mon serveur qui envoie les requêtes à l’API Facebook et non à un système basé sur l’utilisateur (où je pourrais facilement demander à un utilisateur d’autoriser à nouveau l’application Facebook), cela crée un système très encombrant. Depuis que Facebook a déprécié offline_access , n’y a-t-il pas vraiment de moyen permanent pour que mon serveur extrait des informations de ma propre page? Dois-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 qui me manque?

Mettre à jour:

Le guide étape par étape qui a été précédemment trouvé ici a été migré vers le bas dans sa propre réponse .

Ce sont les étapes qui étaient précédemment dans la question – ils ont migré vers cette réponse.

Ayant constaté qu’il est possible de générer un jeton d’access à la page Facebook qui n’expire pas (avec l’aide de @Igy), voici un guide clair, étape par étape, pour tous ceux qui cherchent la même chose:

  1. Assurez-vous que vous êtes l’administrateur de la page FB à partir de laquelle vous souhaitez extraire des informations
  2. Créez une application FB (devrait être avec le même compte d’utilisateur que celui de la page admin)
  3. Rendez-vous sur l’ explorateur API Facebook Graph
  4. En haut à droite, sélectionnez l’application FB que vous avez créée à partir de la liste déroulante “Application”.
  5. Cliquez sur “Obtenir le jeton d’access”
  6. Assurez-vous d’append la permission manage_pages
  7. Convertissez ce jeton d’access à durée de vie courte en un code à durée de vie longue en créant cet appel d’API graphique: https://graph.facebook.com/oauth/access_token?client_id=&client_secret=&grant_type=fb_exchange_token&fb_exchange_token=
  8. Récupérer le nouveau jeton d’access longue durée
  9. Effectuez un appel d’API graphique pour voir vos comptes à l’aide du nouveau jeton d’access longue durée: https://graph.facebook.com/me/accounts?access_token= jeton d’access de https://graph.facebook.com/me/accounts?access_token=
  10. Prenez le access_token pour la page à partir de laquelle vous allez extraire des informations
  11. Lint le jeton pour voir qu’il est défini sur Expires: Never !

Ça devrait le faire. Vous devriez maintenant avoir un jeton d’access à la page Facebook qui n’expire pas, sauf si:

  • Vous changez le mot de passe de votre compte Facebook
  • Vous perdez l’access administrateur pour la page cible
  • Vous supprimez ou désautorisez votre application Facebook

N’importe lequel de ces éléments entraînera la non validité du jeton d’access.

Si vous obtenez (#100) Tried accessing nonexisting field (accounts) on node type (Page) , accédez au débogueur de jeton d’access , copiez la valeur de User ID et utilisez-le pour remplacer la partie “moi” de l’URL. étape 9.

Ceci est couvert dans le document de dépréciation Accès hors connexion

Utilisez le jeton de 60 jours pour que l’administrateur de page récupère un jeton d’access à la page (via /PAGE_ID?fields=access_token ou /me/accounts ) – le jeton d’access à la page n’aura pas de délai d’expiration

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

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

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

Extension des jetons d’access aux pages

Les applications peuvent récupérer un jeton d’access à la page à partir des utilisateurs de l’administrateur de page lorsqu’ils s’authentifient avec l’autorisation manage_pages. Si le jeton d’access utilisateur utilisé pour récupérer ce jeton d’access à la page est de courte durée, le jeton d’access à la page sera également de courte durée.

Pour obtenir un jeton d’access à la page dont la durée de vie est plus longue, remplacez le jeton d’access utilisateur par un jeton de longue durée, comme ci-dessus, puis demandez le jeton d’access à la page. Le jeton d’access à la page résultant n’aura pas de délai d’expiration.

Vous pouvez également copier et passer depuis le tableau de bord de l’application sur Facebook. Les marches:

  1. Allez sur https://developers.facebook.com

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

  3. Cliquez sur Messenger dans les options sur la gauche (il ira au réglage automatiquement) (photo de ce à quoi il ressemble)
  4. Accédez à la section “Génération de jetons” de la page. Sélectionnez la page pour laquelle vous souhaitez générer le jeton. (photo de quoi cette section ressemble)
  5. La copie et le passé de votre jeton de page où vous en avez besoin.

Gardez à l’esprit que, bien qu’en théorie, votre jeton n’expire pas, il est directement lié au compte facebook auquel vous êtes connecté. Donc, dites que vous modifiez votre mot de passe ou que vous supprimez les permissions entre votre compte et votre application, alors votre jeton ne sera plus valide.