Je suis conscient qu'il y a beaucoup de questions sur les clés d'accès à Facebook et le chagrin qu'elles causent, mais malgré de nombreuses expériences et la lecture de nombreux articles de blogues frustrants et vagues (FB et autres), j'ai toujours du mal à obtenir une réponse claire à mes besoins. . Permettez-moi de décomposer succinctement mon processus jusqu'à présent:
Et voici où je suis coincé. Ma clé de 60 jours fonctionne correctement pour que mon serveur puisse extraire les informations nécessaires de la page, mais pour autant que je sache, il n’ya aucun moyen d’étendre par programme cette clé de 60 jours. Je ne connais pas non plus de moyen de générer une nouvelle clé de courte durée sans aller manuellement à l'explorateur Facebook Graph API et en créer une.
Comme c’est mon serveur qui adresse les requêtes à l’API de Facebook et non pas à 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 fastidieux. Depuis que Facebook est obsolète offline_access
, n'y a-t-il pas vraiment de moyen permanent pour que mon serveur extrait les informations de ma propre page? Dois-je vraiment créer manuellement une nouvelle clé et mettre à jour manuellement mon serveur avec elle tous les 60 jours?
Ou y a-t-il quelque chose qui me manque?
Mise à jour:
Le guide pas à pas précédemment trouvé ici a été migré dans son propre réponse .
Voici les étapes précédentes de la question: elles ont été migrées vers cette réponse.
Après avoir constaté qu'il est possible de générer un jeton d'accès à la page Facebook qui n'expire pas (avec l'aide de @Igy), voici un guide détaillé, étape par étape, pour tous ceux qui cherchent la même chose:
manage_pages
autorisationhttps://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>
https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
access_token
pour la page sur laquelle vous allez extraire des informationsExpires: Never
!Ça devrait le faire. Vous devriez maintenant avoir un jeton d'accès à la page Facebook qui n'expire pas, sauf si:
N'importe lequel de ces cas rendra le jeton d'accès invalide.
Si vous obtenez (#100) Tried accessing nonexisting field (accounts) on node type (Page)
, allez au Access Token Debugger , copiez la valeur de User ID
, et utilisez-le pour remplacer le "moi" de l'URL à l'étape 9.
Ceci est couvert dans le dépréciation de l'accès hors ligne document
Utilisez le jeton 60 jours pour que l’administrateur de la page récupère 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
Merci beaucoup à @redhotvengeance pour ce guide étape par étape.
Après un certain temps, la documentation de Facebook décrit clairement:
https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
Extension des jetons d'accès aux pages
Les applications peuvent récupérer un jeton d'accès à la page des utilisateurs de l'administrateur de la page lorsqu'ils s'authentifient avec l'autorisation manage_pages. Si le jeton d'accès utilisateur utilisé pour extraire ce jeton d'accès à la page est de courte durée, le jeton d'accès à la page sera également de courte durée.
Pour obtenir un jeton d'accès à la page ayant une durée de vie plus longue, remplacez le jeton d'accès utilisateur par un autre, comme indiqué ci-dessus, puis demandez le jeton d'accès à la page. Le jeton d'accès à la page résultant n'aura aucune heure d'expiration.
Vous pouvez également copier et coller depuis le tableau de bord de l'application sur facebook. Les marches:
Allez à https://developers.facebook.com
Sélectionnez votre application dans le coin supérieur droit de la page (image montrant à quoi elle ressemble)
N'oubliez pas qu'en théorie, votre jeton n'expire pas, mais qu'il est directement lié à votre compte facebook. Disons que vous modifiez votre mot de passe ou supprimez les autorisations entre votre compte et votre application, votre jeton ne sera plus valide.