Часто задаваемые вопросы

В этом документе содержатся ответы на часто задаваемые вопросы.

Общие вопросы

Приложения устанавливаются с сайта приложения с использованием входа через Facebook и предоставлением разрешения pages_messaging конкретной Странице. Авторизованные приложения появятся в разделе Расширенный обмен сообщениями в настройках Страницы.

Да. Одно приложение Facebook может быть подписано на несколько Страниц. После отправки приложения на проверку (например, для разрешения pages_messaging) вы сможете настроить приложение так, чтобы оно получало Webhooks с нескольких страниц. Вам нужно будет самостоятельно определить контекст каждого Webhook на основании на полезных данных.

Да, на Страницу могут подписаться несколько приложений. Когда несколько приложений обрабатывают одну переписку, лучше всего использовать протокол передачи, чтобы определить, какой бот управляет перепиской в конкретный момент.

Общий регламент по защите данных (GDPR)

Ответы на часто задаваемые вопросы об Общем регламенте по защите данных и платформе Messenger см. здесь.

Точки входа

Если вы работаете с плагином «Отправить в Messenger», то можете использовать параметр data-ref для передачи любой информации о контексте клика.

Люди могут находить вашу страницу и через поиск в Messenger. В этих случаях у вас не будет параметра для передачи информации. Вы можете использовать функцию привязки аккаунта, чтобы связать переписку с аккаунтом пользователя на вашем сайте.

Когда приложение находится в режиме разработки, этот плагин доступен только администраторам, разработчикам и тестировщикам приложения. После того как приложение будет проверено и одобрено, вы сможете сделать его общедоступным во вкладке «Проверка приложения» в Панели приложений.

API однократных уведомлений

No. Unlike subscriptions where a business can send multiple messages to people on a recurring basis, the one-time notification API limits the business to a single message per user request. If the person engages with the message, the standard messaging window will reopen.

Yes. Pages interested in using the One-time Notification API need to apply for permission. Go to the Advanced Messaging section of your Page Settings and consent to the terms. A Page will be granted permission if the Page meets our criteria.

Common uses of the API include various promotional and non-promotional use cases where the User explicitly requested a follow-up. Examples include:

  • Back in stock alerts
  • Collection launches
  • Concert tickets going on sale
  • Price drop alerts
  • Train tickets available for purchase
  • CSAT surveys

Your Page is not allowed to send a notification on a topic for which the User has not agreed to receive a notification. Please see the Usage and Restrictions and Limitations sections of the One-time Notification guide for more information.

A Page can send multiple requests however, the 24-hour policy will be applied to all the requests being sent. We also have controls in place to prevent spamming users with multiple requests.

The 24 hour standard messaging window will open only if the user interacts with the opt-in message. The behavior is consistent with interactions with other elements in the Messenger experience.

Once a person asks to be notified, the Page will receive a token which is equivalent to a permission to send a single message to the person. The token can be used to send a message to the person outside the 24 hour window. The token can only be used once and unused tokens will expire within 1 year of creation.

Yes. However, while it is possible to send another notification request using an existing token, there is no clear benefit for the business to send these type of requests.

No. The app does not need to specify any message tags when sending a message outside the 24-hour standard messaging window using this API.

API отправки/получения

Это может происходить по разным причинам:

  • Вы используете идентификатор из «Входа через Facebook». ID пользователей из «Входа через Facebook» не предназначены для работы с API Send/Receive. С платформой Messenger работают только ID пользователей, полученные через аутентификацию в Messenger.
  • Вы используете идентификатор с неправильным маркером доступа к странице. ID пользователей для платформы Messenger действуют только в пределах отдельно взятой страницы. Если вы используете действительный ID пользователя с маркером доступа, созданным для другой страницы, вызов не сработает. Обязательно используйте ID пользователя и маркер доступа, связанные с одной и той же страницей.
  • Вы отправляете сообщение на номер телефона, который давно не проходил проверку. При использовании API Send с телефонным номером сообщения отправляются только в том случае, если этот номер был недавно подтвержден. Даже если номер телефона подтвержден, но в последнее время не проходил проверку, отправка сообщения может быть не выполнена. Подтвердите номер телефона повторно, подождите 24 часа и повторите попытку.

Выполните следующие действия для проверки интеграции платформы Messenger:

  1. Создайте нового тестового пользователя в своем приложении, нажав кнопку «Добавить» на странице Роли.
  2. Включите функцию Авторизовать тестовых пользователей для этого приложения? и предоставьте разрешения manage_pages и "page_messaging".
  3. Нажмите кнопку «Редактировать» и получите маркер доступа для этого пользователя (используйте версию 2.6). Сохраните его.
  4. Нажмите кнопку Редактировать и войдите как тестовый пользователь.
  5. Создайте страницу как тестовый пользователь.
  6. Используйте маркер доступа тестового пользователя, чтобы получить маркер доступа к Странице этого пользователя. Это можно сделать, вызвав следующий код:
    https://graph.facebook.com/v2.6/me/accounts?access_token=[TEST_USER_ACCESS_TOKEN]
    (Документация)
  7. Используйте полученный маркер доступа к Странице, чтобы связать приложение Facebook со Страницей:
    https://graph.facebook.com/v2.6/me/subscribed_apps?method=POST&access_token=[TEST_USER_PAGE_ACCESS_TOKEN]
            
    (Документация)
  8. Выполнив эти действия, вы сможете получать на тестовую Страницу обновления в реальном времени и отправлять с нее сообщения тестовому пользователю. Кроме того, вы можете заменить свой маркер доступа на маркер доступа длительного действия, если он истекает слишком быстро для ваших тестов. Ознакомьтесь с документацией на этой странице:
    GET /oauth/access_token?  
        grant_type=fb_exchange_token&           
        client_id={app-id}&
        client_secret={app-secret}&
        fb_exchange_token={short-lived-token} 
            

Да. Бот может использовать оба типа переписки. В этом случае пользователь должен активировать стандартную переписку с помощью допустимого действия или подписаться на рассылку сообщений.

Боты технически не смогут отправлять пользователям больше одного сообщения по истечении 24 часов (сообщения не будут отправлены). В переходный период подобные сообщения существующих ботов будут отправлены, но в случае обнаружения они будут отмечены как недопустимые.

Нет. Платформа Messenger не предлагает API, который бы возвращал список PSID всех людей, которые согласились получать сообщения от вашего бота.

Webhooks

Это может быть связано с двумя факторами. Во-первых убедитесь, что ваш Webhook правильно настроен (https://developers.facebook.com/docs/messenger-platform/webhook-reference#setup). Существует индикатор, указывающий на корректную работу Webhook.

Во-вторых, нужно подписаться на все страницы. Вы увидите список всех страниц, на которые вы подписаны.

Если вызовы Webhook дают сбои в течение долгого времени, подписка приложения будет отменена, и вам придется снова добавлять Webhook и подписывать приложение на страницу.

Вызовы Webhook содержат в заголовке поле X-Hub-Signature, которое позволит убедиться, что вызов получен от Facebook.

Убедитесь, что ваш Webhook отвечает с кодом статуса 200. Это код указывает на успешное получение запроса. Если код 200 не возвращается, мы будем отправлять повторные вызовы, пока этот код не будет получен. Кроме того, если Webhook не возвращает код 200 в течение долгого времени, мы начинаем отправлять разработчику предупреждения.

Обратите внимание, что успешный ответ возвращается через установленный промежуток времени. Вызов Webhook имеет таймаут 20 секунд. Конфигурируйте код таким образом, чтобы запросы Webhook обрабатывались асинхронно, тогда код статуса будет возвращаться мгновенно.

Для просмотра недавних ошибок Webhooks есть специальный инструмент. Если вызовы Webhooks не доставляются, серверы Facebook автоматически отменяют подписку для вашего URL. Чтобы воспользоваться инструментом, перейдите на Панель приложений, выберите > Messenger > "Настройки" и найдите в карточке Webhooks кнопку Показать недавние ошибки.