Facebook Messenger — подключение и проверка
Бот отвечает в личных сообщениях вашей страницы Facebook. Личный профиль подключить нельзя — нужна именно страница.
Что нужно заранее
- Страница Facebook, где вы администратор.
- Аккаунт Meta for Developers и приложение типа Business с добавленным продуктом Messenger.
- Роль администратор в проекте ImpactBot: канал подключает только она.
- Свободный слот канала в тарифе — иначе подключение остановится с сообщением про лимит.
Отдельно про доступность: пока приложение не прошло Meta App Review, канал работает только для тест-аккаунтов приложения и для людей с ролью в нём. Это ограничение Meta, а не настройка ImpactBot, и обойти его нельзя.
Права и доступы
От Meta нужны два значения, и оба обязательны:
- Page Access Token — токен конкретной страницы (Messenger → раздел Settings, блок Access Tokens). По нему бот пишет от имени страницы.
- App Secret — раздел Settings, вкладка Basic. Им подписан каждый входящий запрос: ImpactBot сверяет заголовок `X-Hub-Signature-256` и отвергает событие с чужой или отсутствующей подписью. Канал без App Secret не создаётся, а если бы создался — приём был бы открыт любому, кто угадал адрес.
Для боевого запуска приложению нужно разрешение `pages_messaging`, выдаваемое App Review.
Подключение и вебхук
- developers.facebook.com → My Apps → приложение Business → добавьте продукт Messenger.
- Messenger → раздел Settings, блок Access Tokens → выберите страницу → сгенерируйте Page Access Token.
- раздел Settings, вкладка Basic → скопируйте App Secret.
- Проект → Каналы → Facebook Messenger → название, Page Access Token, App Secret → «Подключить».
Дальше адрес приёма прописывается вручную — Meta принимает Callback URL только из своей консоли. После подключения окно показывает два готовых значения: Webhook URL (Callback URL) и Verify Token. Verify Token генерирует ImpactBot; придумывать его не нужно.
- Messenger → раздел Settings, блок Webhooks → Add Callback URL → вставьте оба значения → Verify and Save. Meta дёрнет адрес запросом `hub.mode=subscribe`; если Verify Token совпал, проверка пройдёт.
- Там же подпишите страницу на события messages и messaging_postbacks — без подписки Meta не пришлёт ни одного сообщения.
Проверка
Нажмите «Проверить» на карточке канала. Диагностика Facebook показывает: подтверждён ли Page Access Token и какая это страница, сохранён ли App Secret для проверки подписи, разрешена ли отправка (проба уходит на заведомо несуществующего получателя — доставки не происходит) и приходили ли входящие.
После этого напишите странице из Messenger аккаунтом, у которого есть доступ к приложению, — сообщение должно появиться в разделе «Диалоги».
Частые ошибки
- «Facebook App Secret is required». Заполнен только токен страницы.
- «Invalid Facebook Page Access Token». Взят пользовательский токен вместо токена страницы либо срок токена истёк.
- Meta не проходит верификацию (Forbidden). Verify Token введён не тот: берите его из окна подключения, а не придумывайте.
- Бот молчит. Страница не подписана на `messages` и `messaging_postbacks` в разделе Webhooks.
- В журнале «invalid X-Hub-Signature-256». App Secret взят из другого приложения Meta — подпись считается другим ключом.
- Работает только у администраторов страницы. Приложение не прошло App Review: у Meta это штатное поведение режима разработки.