Подход, который работает в 2019 году
Недавно я пытался добиться чего-то похожего (к варианту использования, описанному в этой ветке), но я хотел убедиться, что соблюдаю текущую политику Facebook, поэтому я провел небольшое исследование и делюсь тем, что нашел.
Мой вариант использования
Итак, как я уже сказал, мой вариант использования очень похож на описанный здесь; то есть:
- Я делаю некоторую работу для школьного округа.
- Они используют программный инструмент для управления практически всем, что касается школьного транспорта.
- Этот инструмент позволяет им отправлять уведомления по электронной почте (подписчикам), когда они публикуют оповещения о задержках автобусов и о закрытии школ.
- Многие люди в сообществе следят за организацией на своей странице в Facebook, и это единственное место, где они ищут эти предупреждения.
- Таким образом, сотрудник организации должен вручную публиковать каждое уведомление на странице Facebook (в дополнение к его созданию в транспортном ПО). Более того, эти уведомления в конечном итоге истекают (или просто удаляются до истечения срока их действия), поэтому сотрудник должен вернуться позже, чтобы удалить их вручную.
- Это небольшая часть времени, поэтому мы пытаемся разработать простую систему, которая периодически опрашивает базу данных программного инструмента на предмет новых (и просроченных) уведомлений и обновляет их (т.е. добавляет и удаляет) на странице Facebook.
На мой взгляд, это законный вариант использования, но я не знал, как реализовать его в соответствии с политиками Facebook.
Принятый ответ
Я выполнил шаги принятого ответа, и он сработал, за исключением того, что, похоже, все изменилось: теперь, даже если срок действия сгенерированного токена страницы не истекает, access to data
действительно истекает примерно через 60 дней. Вы также увидите это, если выполните процедуру и проверите токен страницы в FB Token Debugger Tool < / а>.
Кроме того, тот факт, что сгенерированные токены страницы привязаны к учетной записи пользователя, также прискорбен, потому что, если пользователь обновляет свой пароль, токен страницы также становится недействительным.
Как это сделать в 2019 году
После нескольких часов исследования я наткнулся на следующую статью документации Facebook: Business Login для прямого бизнеса.
Оказывается, теперь можно, следуя шагам, описанным в приведенной выше статье, сгенерировать токен страницы, который не связан с какой-либо конкретной учетной записью пользователя Facebook и срок действия которого не истечет (если только приложение FB не будет удалено или базовый токен приложения удаляется, понимаете ...)
Итак, вот шаги и самые важные части:
- You need a Business Manager account.
- Verification will be required and a digital contract will have to be signed.
- Вам необходимо добавить целевую страницу Facebook в эту учетную запись.
- Вам необходимо создать приложение Facebook и перенести это приложение в ту же учетную запись Business Manager.
- The app will have to go through Facebook's review process, because the following permissions will be needed:
manage_pages
and publish_pages
.
- Important note For the posts made using the generate page token to be visible to users other than the application administrators, that app will need to have been published and approved.
- Вы все равно можете поэкспериментировать с концепцией, не отправляя на рассмотрение, но сообщения не будут общедоступными.
- In the Business Manager account (only after your app and page have been added to the account), you need to create what's called a System User, and give that user admin role (or permissions) to the target Facebook page.
- A system user is owned by the Business Manager account, and isn't tied to a specific user. My current understanding is that one major use case for a system user is programmatic access to Facebook's Graph API (just what we need).
- Затем для этого пользователя системы вам необходимо сгенерировать токен доступа (срок действия которого не истекает). Вам будет предложено выбрать для какого приложения. Затем вы выберете свое целевое приложение.
- Затем вам нужно будет использовать сгенерированный токен приложения для создания токена страницы, который также будет бессрочным. Процедура описана в этой статье как:
GET /<PAGE_ID>?fields=access_token&access_token=<SYSTEM_USER_ACCESS_TOKEN>
Срок действия этого токена никогда не истечет, и он не будет привязан к конкретному пользователю Facebook, так что это именно то, что нам нужно!
Последняя часть - убедиться, что ваше приложение Facebook одобрено Facebook. Фактически, это самая важная часть, потому что вся процедура бесполезна, если люди не видят наши сообщения.
Я хотел знать наверняка, что могу положиться на описанную выше процедуру, чтобы создать что-то для моего клиента без того, чтобы Facebook отклонил это в конце, поэтому заранее (то есть перед тем, как начать работу над проектом моего клиента), я прошел весь процесс создание страницы, приложения, учетной записи Business Manager и т. д. Я подтвердил свой бизнес. Я отправил свое приложение на проверку. В моем запросе я очень конкретизировал свой вариант использования и подчеркнул, что приложение предназначено для «самостоятельного использования» (т.е. что организация разрабатывает приложение для себя, а не для других пользователей Facebook). Я получил одобрение менее чем за 24 часа.
Еще несколько примечаний о процессе проверки приложения:
- Мне нужно было выбрать платформу для приложения, поэтому я выбрал веб-сайт.
- Я должен был указать, почему приложению нужны эти два разрешения и как оно будет их использовать.
- Я должен был указать, почему рецензент не сможет войти в мое приложение и попробовать его (то есть потому, что приложение будет использоваться рабочим процессом).
- Для обязательных скринкастов я просто представил ручные операции в терминале с помощью утилиты
curl
(для генерации токена страницы и публикации сообщений на странице Facebook). Я также показал, как использую Business Manager, чтобы связать системного пользователя со страницей и сгенерировать токен и так далее.
- Опять же, я очень конкретизировал свой вариант использования, и я думаю, что это помогло.
Надеюсь, эта информация будет полезна людям с похожими вариантами использования.
person
focorner
schedule
15.11.2019
manage_pages
право. Я полагаю, что токен страницы будет разрешать доступ только для чтения, но это все, что мне нужно. - person Vlasec   schedule 28.06.2013