Podejście, które sprawdza się w 2019 roku
Ostatnio próbowałem osiągnąć coś podobnego (do przypadku użycia opisanego w tym wątku), ale chciałem upewnić się, że przestrzegam obecnych zasad Facebooka, więc poszukałem trochę informacji i tutaj dzielę się tym, co znalazłem.
Mój przypadek użycia
Tak więc, jak już powiedziałem, mój przypadek użycia jest bardzo podobny do opisanego tutaj; to jest:
- Wykonuję pracę dla okręgu szkolnego.
- Używają narzędzia programowego do zarządzania prawie wszystkim, co dotyczy transportu szkolnego.
- To narzędzie umożliwia im wysyłanie powiadomień e-mail (do subskrybentów), gdy publikują alerty o opóźnieniach autobusów i powiadomienia o zamknięciu szkoły.
- Wiele osób ze społeczności śledzi organizację na swojej stronie na Facebooku i jest to jedyne miejsce, w którym szukają tych alertów.
- Pracownik organizacji musi więc ręcznie publikować każde zgłoszenie na stronie na Facebooku (oprócz tworzenia go w oprogramowaniu transportowym). Co więcej, te powiadomienia ostatecznie wygasają (lub są po prostu usuwane przed wygaśnięciem), więc pracownik musi później wrócić, aby usunąć je ręcznie.
- To przerwa w czasie, więc staramy się tutaj stworzyć prosty system, który okresowo sonduje bazę danych oprogramowania pod kątem nowych (i wygasłych) powiadomień i aktualizuje je (tj. Dodaje i usuwa) na stronie na Facebooku.
Moim zdaniem jest to uzasadniony przypadek użycia, ale nie byłem pewien, jak go wdrożyć w sposób zgodny z polityką Facebooka.
Zaakceptowana odpowiedź
Postępowałem zgodnie z krokami zaakceptowanej odpowiedzi i zadziałało, z tym że wygląda na to, że coś się zmieniło: teraz, mimo że wygenerowany token strony nie traci ważności, access to data
wygasa po około 60 dniach. Zobaczysz to również, jeśli wykonasz procedurę i sprawdzisz token strony w narzędziu FB Token Debugger Tool .
Poza tym fakt, że wygenerowane tokeny stron są powiązane z kontem użytkownika, jest również niefortunny, ponieważ jeśli użytkownik zaktualizuje swoje hasło, to token strony również zostanie unieważniony.
Jak to zrobić w 2019 roku
Po kilku godzinach poszukiwań natknąłem się na następujący artykuł w dokumentacji Facebooka: Business Login for Direct Businesses .
Okazuje się, że można teraz, wykonując kroki opisane w powyższym artykule, wygenerować token strony, który nie jest powiązany z żadnym konkretnym kontem użytkownika Facebooka i który nie wygaśnie (chyba że zostanie usunięta aplikacja FB lub podstawowy token aplikacji zostanie usunięty, wiesz ...)
Oto kroki i najważniejsze części:
- Potrzebujesz konta Business Managera .
- Wymagana będzie weryfikacja i podpisanie umowy cyfrowej.
- Musisz dodać docelową stronę na Facebooku do tego konta.
- Musisz utworzyć aplikację na Facebooku i przenieść ją również na to samo konto Business Managera.
- Aplikacja będzie musiała przejść przez proces recenzji na Facebooku, ponieważ będą potrzebne następujące uprawnienia:
manage_pages
i publish_pages
.
- Ważna uwaga Aby posty utworzone przy użyciu tokena generowania strony były widoczne dla użytkowników innych niż administratorzy aplikacji, ta aplikacja będzie musiała zostać opublikowana i zatwierdzona.
- Nadal możesz eksperymentować z tą koncepcją bez przesyłania do recenzji, ale posty nie będą widoczne publicznie.
- Na koncie Business Manager (tylko po dodaniu aplikacji i strony do konta) musisz utworzyć tak zwanego użytkownika systemu i nadać temu użytkownikowi rolę administratora (lub uprawnienia) docelowej stronie na Facebooku.
- Użytkownik systemu jest własnością konta Business Manager i nie jest powiązany z określonym użytkownikiem. Obecnie rozumiem, że jednym z głównych przypadków użycia dla użytkownika systemu jest programowy dostęp do interfejsu API Graph na Facebooku (właśnie tego potrzebujemy).
- Następnie dla tego użytkownika systemu musisz wygenerować token dostępu (który nigdy nie wygasa). Zostaniesz poproszony o wybranie aplikacji. Następnie wybierzesz aplikację docelową.
- Następnie musisz użyć wygenerowanego tokenu aplikacji, aby wygenerować token strony, który również nigdy nie wygasa. Procedura jest opisana w tym artykule jako:
GET /<PAGE_ID>?fields=access_token&access_token=<SYSTEM_USER_ACCESS_TOKEN>
Ten token nigdy nie wygaśnie i nie będzie powiązany z konkretnym użytkownikiem Facebooka, więc jest dokładnie tym, czego potrzebujemy!
Ostatnią częścią jest upewnienie się, że Twoja aplikacja Facebook zostanie zatwierdzona przez Facebooka. To właściwie najważniejsza część, bo cała procedura jest bezwartościowa, jeśli ludzie nie widzą naszych postów.
Chciałem wiedzieć na pewno, że mogę polegać na powyższej procedurze i zbudować coś dla mojego klienta bez Facebooka odrzucającego to w końcu, więc wcześniej (tj. Przed rozpoczęciem pracy nad projektem mojego klienta) przeszedłem przez cały proces tworzenie strony, aplikacji, konta Business Managera itp. Zweryfikowałem swoją firmę. Przesłałem moją aplikację do sprawdzenia. W mojej prośbie bardzo szczegółowo opisałem mój przypadek użycia i podkreśliłem, że aplikacja jest przeznaczona do „użytku własnego” (tj. Organizacja opracowuje aplikację dla siebie, a nie dla innych użytkowników Facebooka). Zostałem zatwierdzony bez mniej niż 24 godzin.
Kilka innych uwag na temat procesu recenzji aplikacji:
- Musiałem wybrać platformę dla aplikacji, więc wybrałem stronę internetową .
- Musiałem wskazać, dlaczego aplikacja potrzebuje tych dwóch uprawnień i jak będzie ich używać.
- Musiałem wskazać, dlaczego recenzent nie byłby w stanie zalogować się do mojej aplikacji i wypróbować jej (tj. Ponieważ aplikacja będzie używana przez proces roboczy).
- W przypadku obowiązkowych screencastów po prostu przedstawiłem ręczne operacje w terminalu za pomocą
curl
narzędzia (do generowania tokena strony i wysyłania postów na stronę na Facebooku). Pokazałem również, jak za pomocą Business Managera łączyłem użytkownika systemu ze stroną i generowałem token i tak dalej.
- Ponownie podałem bardzo konkretny przypadek użycia i myślę, że to pomogło.
Mam nadzieję, że te informacje będą przydatne dla osób o podobnych przypadkach użycia.