Ein Ansatz, der 2019 funktioniert
Ich habe kürzlich versucht, etwas Ähnliches zu erreichen (wie in diesem Thread beschrieben), aber ich wollte sicherstellen, dass die aktuellen Richtlinien von Facebook eingehalten werden. Deshalb habe ich ein wenig recherchiert und hier teile ich mit, was ich gefunden habe.
Mein Anwendungsfall
Wie ich bereits sagte, ist mein Anwendungsfall dem hier beschriebenen sehr ähnlich. das ist:
- Ich arbeite für einen Schulbezirk.
- Sie verwenden ein Software-Tool, um so ziemlich alles zu verwalten, was mit dem Schultransport zu tun hat.
- Mit diesem Tool können sie E-Mail-Benachrichtigungen (an Abonnenten) senden, wenn sie Busverzögerungsalarme und Schulschließungsalarme veröffentlichen.
- Viele Leute in der Community folgen der Organisation auf ihrer Facebook-Seite, und dies ist der einzige Ort, an dem sie nach diesen Benachrichtigungen suchen.
- Daher muss ein Mitarbeiter der Organisation jede Benachrichtigung manuell auf der Facebook-Seite veröffentlichen (zusätzlich zur Erstellung in der Transportsoftware). Darüber hinaus laufen diese Benachrichtigungen schließlich ab (oder werden einfach gelöscht, bevor sie ablaufen), sodass der Mitarbeiter später zurückgehen muss, um sie auch manuell zu löschen.
- Es ist eine Zeitspanne, also versuchen wir hier, ein einfaches System zu entwickeln, das die Datenbank des Software-Tools regelmäßig nach neuen (und abgelaufenen) Benachrichtigungen abfragt und diese auf der Facebook-Seite aktualisiert (dh hinzufügt und entfernt).
Dies ist meiner Ansicht nach ein legitimer Anwendungsfall, aber ich war mir nicht sicher, wie ich ihn auf eine Weise implementieren sollte, die den Richtlinien von Facebook entspricht.
Die akzeptierte Antwort
Ich habe die Schritte der akzeptierten Antwort befolgt und es hat funktioniert, außer dass sich die Dinge anscheinend geändert haben: Obwohl das generierte Seitentoken nicht abläuft, access to data
läuft es nach etwa 60 Tagen ab. Sie werden dies auch sehen, wenn Sie die Prozedur befolgen und das Seitentoken im FB Token Debugger Tool überprüfen .
Außerdem ist die Tatsache, dass die generierten Seitentoken an das Benutzerkonto gebunden sind, ebenfalls bedauerlich, denn wenn der Benutzer sein Kennwort aktualisiert, wird das Seitentoken ebenfalls ungültig.
Wie es 2019 geht
Nach mehreren Stunden Recherche bin ich auf den folgenden Artikel zur Facebook-Dokumentation gestoßen: Business Login for Direct Businesses .
Es stellt sich heraus, dass es nun möglich ist, gemäß den im obigen Artikel beschriebenen Schritten ein Seitentoken zu generieren, das keinem bestimmten Facebook-Benutzerkonto zugeordnet ist und nicht abläuft (es sei denn, die FB-App wird gelöscht oder das zugrunde liegende Anwendungstoken wird gelöscht, weißt du ...)
Hier sind die Schritte und die wichtigsten Teile:
- Sie benötigen ein Business Manager- Konto.
- Eine Überprüfung ist erforderlich und ein digitaler Vertrag muss unterzeichnet werden.
- Sie müssen die Facebook-Zielseite zu diesem Konto hinzufügen.
- Sie müssen eine Facebook-App erstellen und diese App auch auf dasselbe Business Manager-Konto übertragen.
- Die App muss den Überprüfungsprozess von Facebook durchlaufen, da die folgenden Berechtigungen erforderlich sind:
manage_pages
und publish_pages
.
- Wichtiger Hinweis Damit die mit dem Token zum Generieren von Seiten erstellten Beiträge für andere Benutzer als die Anwendungsadministratoren sichtbar sind, muss diese App veröffentlicht und genehmigt worden sein.
- Sie können weiterhin mit dem Konzept experimentieren, ohne es zur Überprüfung einzureichen, aber die Beiträge sind nicht öffentlich sichtbar.
- Im Business Manager-Konto (erst nachdem Ihre App und Seite dem Konto hinzugefügt wurden) müssen Sie einen sogenannten Systembenutzer erstellen und dieser Benutzeradministratorrolle (oder Berechtigungen) der Facebook-Zielseite zuweisen.
- Ein Systembenutzer gehört dem Business Manager-Konto und ist nicht an einen bestimmten Benutzer gebunden. Mein derzeitiges Verständnis ist, dass ein Hauptanwendungsfall für einen Systembenutzer der programmatische Zugriff auf die Graph-API von Facebook ist (genau das, was wir brauchen).
- Dann müssen Sie für diesen Systembenutzer ein Zugriffstoken generieren (das niemals abläuft). Sie werden aufgefordert, für welche App auszuwählen. Anschließend wählen Sie Ihre Ziel-App aus.
- Sie müssen dann das generierte App-Token verwenden, um ein Seitentoken zu generieren, das ebenfalls niemals abläuft. Das Verfahren wird in diesem Artikel wie folgt beschrieben :
GET /<PAGE_ID>?fields=access_token&access_token=<SYSTEM_USER_ACCESS_TOKEN>
Dieses Token läuft niemals ab und ist nicht an einen bestimmten Facebook-Nutzer gebunden. Es ist also genau das, was wir brauchen!
Der letzte Teil besteht darin, sicherzustellen, dass Ihre Facebook-App von Facebook genehmigt wird. Es ist in der Tat der wichtigste Teil, denn das gesamte Verfahren ist wertlos, wenn die Leute unsere Beiträge nicht sehen.
Ich wollte sicher wissen, dass ich mich auf das oben beschriebene Verfahren verlassen kann, um etwas für meinen Kunden zu erstellen, ohne dass Facebook es am Ende ablehnt. Deshalb habe ich vorher (dh bevor ich anfing, an dem Projekt meines Kunden zu arbeiten) den gesamten Prozess von durchlaufen Erstellen einer Seite, einer App, eines Business Manager-Kontos usw. Ich habe mein Unternehmen überprüft. Ich habe meine App zur Überprüfung eingereicht. In meiner Anfrage war ich sehr spezifisch in Bezug auf meinen Anwendungsfall und betonte, dass die App für den "Selbstgebrauch" bestimmt ist (dh, dass die Organisation eine App für sich selbst entwickelt, nicht für andere Facebook-Benutzer). Ich wurde ohne weniger als 24 Stunden genehmigt.
Einige weitere Hinweise zum App-Überprüfungsprozess:
- Ich musste eine Plattform für die App auswählen, also habe ich die Website ausgewählt .
- Ich musste angeben, warum die App die beiden Berechtigungen benötigte und wie sie verwendet werden sollte.
- Ich musste angeben, warum der Prüfer sich nicht bei meiner App anmelden und es versuchen konnte (dh weil die App von einem Arbeitsprozess verwendet wird).
- Für die obligatorischen Screencasts habe ich einfach manuelle Vorgänge im Terminal mit dem
curl
Dienstprogramm vorgestellt (um das Seitentoken zu generieren und Beiträge auf der Facebook-Seite zu verfassen). Ich habe auch gezeigt, wie ich Business Manager verwendet habe, um den Systembenutzer mit der Seite zu verknüpfen und ein Token zu generieren, und so weiter.
- Auch hier war ich sehr spezifisch in Bezug auf meinen Anwendungsfall, und ich denke, das hat geholfen.
Ich hoffe, dass diese Informationen für Menschen mit ähnlichen Anwendungsfällen nützlich sind.