Une approche qui fonctionne en 2019
J'essayais récemment de réaliser quelque chose de similaire (au cas d'utilisation décrit dans ce fil), mais je voulais m'assurer de respecter les politiques actuelles de Facebook, alors j'ai fait un peu de recherche et ici je partage ce que j'ai trouvé.
Mon cas d'utilisation
Donc, comme je l'ai déjà dit, mon cas d'utilisation est très similaire à celui décrit ici; C'est:
- Je travaille pour un district scolaire.
- Ils utilisent un outil logiciel pour gérer à peu près tout ce qui concerne le transport scolaire.
- Cet outil leur permet d'envoyer des notifications par e-mail (aux abonnés) lorsqu'ils publient des alertes de retard de bus et des alertes de fermeture d'école.
- De nombreux membres de la communauté suivent l'organisation sur leur page Facebook, et c'est le seul endroit où ils recherchent ces alertes.
- Ainsi, un employé de l'organisation doit publier manuellement chaque notification sur la page Facebook (en plus de la créer dans le logiciel de transport). De plus, ces notifications finissent par expirer (ou sont simplement supprimées avant d'expirer), de sorte que l'employé doit revenir plus tard pour les supprimer également manuellement.
- C'est une perte de temps, donc ce que nous essayons de faire ici est de développer un système simple qui interroge périodiquement la base de données de l'outil logiciel pour les notifications nouvelles (et expirées) et les met à jour (c'est-à-dire ajouter et supprimer) sur la page Facebook.
C'est, à mon avis, un cas d'utilisation légitime, mais je ne savais pas comment le mettre en œuvre d'une manière conforme aux politiques de Facebook.
La réponse acceptée
J'ai suivi les étapes de la réponse acceptée et cela a fonctionné, sauf que les choses semblent avoir changé: maintenant, même si le jeton de page généré n'expire pas, access to data
il expire après environ 60 jours. Vous verrez cela également si vous suivez la procédure et inspectez le jeton de page dans l' outil FB Token Debugger .
En outre, le fait que les jetons de page générés soient liés au compte utilisateur est également malheureux, car si l'utilisateur met à jour son mot de passe, le jeton de page est également invalidé.
Comment le faire en 2019
Après plusieurs heures de recherche, je suis tombé sur l'article de documentation Facebook suivant: Business Login for Direct Businesses .
Il s'avère qu'il est désormais possible, en suivant les étapes décrites dans l'article ci-dessus, de générer un jeton de page qui n'est associé à aucun compte utilisateur Facebook particulier et qui n'expirera pas (sauf si l'application FB est supprimée ou le jeton d'application sous-jacent est supprimé, vous savez ...)
Voici donc les étapes et les parties les plus importantes:
- Vous avez besoin d'un compte Business Manager .
- Une vérification sera requise et un contrat numérique devra être signé.
- Vous devez ajouter la page Facebook cible à ce compte.
- Vous devez créer une application Facebook et la transférer également vers le même compte Business Manager.
- L'application devra passer par le processus de révision de Facebook, car les autorisations suivantes seront nécessaires:
manage_pages
et publish_pages
.
- Remarque importante Pour que les publications effectuées à l'aide du jeton de page de génération soient visibles pour les utilisateurs autres que les administrateurs de l'application, cette application doit avoir été publiée et approuvée.
- Vous pouvez toujours expérimenter le concept sans le soumettre pour examen, mais les messages ne seront pas visibles publiquement.
- Dans le compte Business Manager (uniquement après que votre application et votre page ont été ajoutées au compte), vous devez créer ce qu'on appelle un utilisateur système et attribuer à cet utilisateur le rôle d'administrateur (ou les autorisations) sur la page Facebook cible.
- Un utilisateur système appartient au compte Business Manager et n'est pas lié à un utilisateur spécifique. Ma compréhension actuelle est qu'un cas d'utilisation majeur pour un utilisateur système est l'accès par programmation à l'API Graph de Facebook (exactement ce dont nous avons besoin).
- Ensuite, pour cet utilisateur système, vous devez générer un jeton d'accès (qui n'expirera jamais). Vous serez invité à sélectionner pour quelle application. Vous sélectionnerez ensuite votre application cible.
- Vous devrez ensuite utiliser le jeton d'application généré pour générer un jeton de page, qui n'expirera également jamais. La procédure est décrite dans cet article comme suit :
GET /<PAGE_ID>?fields=access_token&access_token=<SYSTEM_USER_ACCESS_TOKEN>
Ce jeton n'expirera jamais et ne sera pas lié à un utilisateur Facebook en particulier, c'est donc exactement ce dont nous avons besoin!
La dernière partie consiste à vous assurer que votre application Facebook est approuvée par Facebook. C'est en fait la partie la plus importante, car toute la procédure est sans valeur si les gens ne voient pas nos messages.
Je voulais être sûr que je pouvais me fier à la procédure ci-dessus pour créer quelque chose pour mon client sans que Facebook le rejette à la fin, donc, au préalable (c'est-à-dire avant de commencer à travailler sur le projet de mon client), j'ai parcouru tout le processus de création d'une page, d'une application, d'un compte Business Manager, etc. J'ai vérifié mon entreprise. J'ai soumis mon application pour examen. Dans ma demande, j'ai été très précis sur mon cas d'utilisation et j'ai souligné que l'application était destinée à un «auto-usage» (c'est-à-dire que l'organisation développe une application pour elle-même, pas pour d'autres utilisateurs de Facebook). J'ai été approuvé sans moins de 24 heures.
Quelques autres remarques sur le processus d'examen des applications:
- J'ai dû sélectionner une plate-forme pour l'application, alors j'ai choisi le site Web .
- Je devais indiquer pourquoi l'application avait besoin des deux autorisations et comment elle allait les utiliser.
- J'ai dû indiquer pourquoi le réviseur ne pouvait pas se connecter à mon application et l'essayer (c'est-à-dire parce que l'application sera utilisée par un processus de travail).
- Pour les screencasts obligatoires, j'ai simplement présenté des opérations manuelles dans le terminal à l'aide de l'
curl
utilitaire (pour générer le jeton de page et publier des messages sur la page Facebook). J'ai également montré comment j'utilisais Business Manager pour lier l'utilisateur système à la page et générer un jeton, etc.
- Encore une fois, j'ai été très précis sur mon cas d'utilisation, et je pense que cela a aidé.
J'espère que ces informations seront utiles aux personnes ayant des cas d'utilisation similaires.