Une approche qui fonctionne en 2019
J'ai récemment essayé de réaliser quelque chose de similaire (au cas d'utilisation décrit dans ce fil de discussion), mais je voulais m'assurer de respecter les politiques actuelles de Facebook. J'ai donc fait quelques recherches et je partage ici 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-à-dire :
- Je travaille pour un district scolaire.
- Ils utilisent un logiciel pour gérer à peu près tout ce qui concerne le transport scolaire.
- Cet outil leur permet d'envoyer des notifications par courrier électronique (aux abonnés) lorsqu'ils publient des alertes de retard de bus et des alertes de fermeture d'école.
- De nombreuses personnes de la communauté suivent l'organisation sur sa page Facebook, et c'est le seul endroit où elles recherchent ces alertes.
- Un employé de l'organisation doit donc 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 leur expiration), de sorte que l'employé doit revenir plus tard pour les supprimer manuellement également.
- 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 nouvelles notifications (et celles qui ont expiré) et les met à jour (c'est-à-dire les ajouter et les supprimer) sur la page Facebook.
Il s'agit, à mon avis, d'un cas d'utilisation légitime, mais je ne savais pas comment le mettre en œuvre d'une manière qui soit 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
expire après environ 60 jours. Vous le constaterez également si vous suivez la procédure et que vous inspectez le jeton de page dans le fichier Outil débogueur de jetons FB .
En outre, le fait que les jetons de page générés soient liés au compte utilisateur est également regrettable, car si l'utilisateur met à jour son mot de passe, le jeton de page est également invalidé.
Comment faire en 2019
Après plusieurs heures de recherche, je suis tombé sur l'article suivant de la documentation Facebook : Business Login pour les entreprises directes .
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 d'utilisateur Facebook particulier et qui n'expirera pas (sauf si l'application FB est supprimée ou si 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 Directeur commercial compte.
- Une vérification sera nécessaire 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 transférer cette application vers le même compte Business Manager.
-
L'application devra passer par le processus d'examen 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 généré soient visibles par des utilisateurs autres que les administrateurs de l'application, cette dernière devra 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 aient été ajoutées au compte), vous devez créer ce que l'on appelle une Utilisateur du système et donnez à cet utilisateur un rôle d'administrateur (ou des autorisations) pour la page Facebook cible.
- Un utilisateur système est la propriété du compte Business Manager et n'est pas lié à un utilisateur spécifique. D'après ce que je comprends actuellement, l'un des principaux cas d'utilisation d'un utilisateur système est l'accès programmatique à l'API graphique de Facebook (exactement ce dont nous avons besoin).
-
Ensuite, pour cet utilisateur du système, vous devez générer un jeton d'accès (qui n'expirera jamais). Il vous sera demandé de choisir pour quelle application. Vous sélectionnerez alors votre application cible.
-
Vous devrez ensuite utiliser le jeton d'application généré pour générer un jeton de page, qui sera également sans expiration. La procédure est décrite dans cet article comme :
GET /<PAGE_ID>?fields=access_token&access_token=<SYSTEM_USER_ACCESS_TOKEN>
-
C'est tout.
Ce jeton n'expirera jamais et ne sera pas lié à un utilisateur Facebook particulier. C'est donc exactement ce dont nous avons besoin !
La dernière partie consiste à s'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 inutile si les gens ne voient pas nos publications.
Je voulais être sûr que je pouvais m'appuyer sur la procédure ci-dessus pour construire quelque chose pour mon client sans que Facebook ne le rejette au final, donc, au préalable (c'est-à-dire avant de commencer à travailler sur le projet de mon client), je suis passé par 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écise quant à mon cas d'utilisation et j'ai insisté sur le fait que l'application était destinée à une "utilisation personnelle" (c'est-à-dire que l'organisation développe une application pour elle-même, et non pour les autres utilisateurs de Facebook). J'ai été approuvé en moins de 24 heures.
Quelques autres remarques concernant le processus d'examen des applications :
- Je devais choisir une plateforme pour l'application, j'ai donc sélectionné site web .
- Je devais indiquer pourquoi l'application avait besoin de ces deux autorisations et comment elle allait les utiliser.
- J'ai dû indiquer pourquoi l'examinateur ne pourrait 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é les opérations manuelles dans le terminal à l'aide de la commande
curl
(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 du 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 m'a aidé.
J'espère que ces informations seront utiles aux personnes ayant des cas d'utilisation similaires.
0 votes
C'est génial. Je suis dans la même situation et je cherchais des informations sur ce sujet. Est-il sûr que ce jeton n'enfreint aucune politique de la plateforme FB ? Je demande juste pour être sûr.
2 votes
@asrijaal Facebook's own documentation (voir le scénario 5) indique que ces jetons d'accès aux pages n'expirent pas. Je dirais que l'on peut supposer qu'ils sont conformes aux politiques de Facebook.
0 votes
"J'ai pensé que ce serait bien de laisser un processus clair étape par étape" - le ciel nous en préserve :) Merci @redhotvengeance
0 votes
Vous avez une erreur de frappe dans l'url de votre page d'accès. Il devrait y avoir un ? et non un & après les comptes. J'ai passé un moment à essayer de comprendre pourquoi cela ne fonctionnait pas :P
0 votes
@Joren En effet, le problème est maintenant résolu. Merci !
0 votes
Vous n'avez pas besoin d'être un administrateur, le rôle en lecture seule, analyste, peut également fonctionner. Il vous suffit de donner à l'utilisateur le nom de
manage_pages
Bien. Je suppose que le jeton de page ne permettra qu'un accès en lecture seule, mais c'est tout ce dont j'avais besoin.0 votes
Un avertissement : ce jeton n'expire pas, sauf si l'utilisateur change de mot de passe, alors il deviendra invalide.
1 votes
Merci beaucoup pour ça. Et aussi, qu'est-ce que c'est que ce facebook ?
0 votes
J'ai fait une expérience pour lire des données de Facebook à travers Pentaho-Kettle, et j'ai trouvé que certaines choses (lire API) ont changé depuis que ces tutoriels ont été écrits... Voici mon recueil du processus... Merci beaucoup à l'affiche originale... tech.sraghav.in/2014/02/
0 votes
@redhotvengeance, puisque votre "mise à jour" est la réponse qui fonctionne réellement, pourriez-vous la déplacer vers une réponse ci-dessous afin qu'elle puisse être votée et acceptée ?
0 votes
@JuanA.Navarro Après y avoir réfléchi (et testé à nouveau les étapes pour s'assurer que Facebook n'a pas modifié les choses), je suis d'accord. Il est préférable de suivre les conventions du SO pour que ces étapes soient dans leur propre réponse. Je les ai transférées.