Расширения чата


Расширения чата позволяют ботам использовать интерактивные и социальные функции в диалогах с людьми.
СОДЕРЖАНИЕ
  1. Обзор
  2. Настройка точки входа в панель
  3. Публикации
  4. Как получить ID пользователя и контекст переписки
  5. Управление разрешениями
  6. Советы и рекомендации
  7. ЧаВо и устранение неполадок

Обзор

Модель взаимодействия

Расширения чата отображаются в панели окна для сообщений в Messenger после того, как человек обратится к соответствующему боту.

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

Когда группа людей делится друг с другом такими сообщениями, разработчик получает доступ к контекстуальной информации о переписке, может запрашивать разрешения и делать все, что поддерживает JavaScript SDK расширений Messenger.

Возможные примеры использования

  • Самовыражение: создавайте наклейки или мемы прямо в Messenger. Делитесь песнями, видео или другими материалами.
  • Мультимедиа: отправляйте актуальные новости по интересующим вас темам.
  • Торговля: планируйте покупки и заказывайте товары всей группой.
  • Продуктивность: отправляйте обновления от инструментов по отслеживанию задач, редактируйте документ вместе с коллегами.
  • Развлечения: создавайте игры и групповые задания.

Пример проекта

Мы открыли исходный код TaskBot — это бот, который представляет все описанные здесь функции.


Попробуйте в Messenger →Github Repo →

Настройка точки входа в панель

Чтобы ваш бот отображался в панели у людей, которые его добавили, необходимо настроить его URL.

Если ваше расширение чата не готово к запуску, настройте in_test на true, чтобы оно не отображалось у рядовых пользователей раньше времени.

Подробнее →

Публикации

Платформа Messenger поддерживает индивидуально настроенную функцию публикации из веб-представления, что позволяет разработчикам предоставлять индивидуально настроенное сообщение и место назначения для сообщений от бота.

Мы добавили в эти функции ряд улучшений, чтобы они были совместимы с расширениями чата. Вот что нужно знать:

Публикация в текущей переписке

Функция beginShareFlow() обладает параметром mode, который теперь поддерживает режим current_thread. Это позволяет людям делиться материалами в переписке, из которой они вызвали расширение чата, а не выбирать другую переписку. Большинство разработчиков выберут режим current_thread для работы внутри самого расширения.

В некоторых ситуациях следует проверить, поддерживается ли этот режим используемой версией Messenger. Используйте метод getSupportedFeatures() и для уверенности проверьте ключ "sharing_direct".

Реакции на публикации

Обратный вызов success для beginShareFlow() вызывается вне зависимости от того, подтвердит или отклонит человек публикацию, если не возникнет никакой ошибки.

Messenger передает поле is_sent в ответ на обратный вызов success, чтобы вы знали, отправлено ли сообщение.

После публикации рекомендуем закрыть окно или перенаправить человека на следующий шаг.

<script> 
    var messageToShare = { ... };
      
    MessengerExtensions.beginShareFlow(function success(response) {
      if(response.is_sent === true){ 
      	// User shared. We're done here!
      	MessengerExtensions.requestCloseBrowser();
      }
      else{
      	// User canceled their share! 
      
      }
    }, 
    function error(errorCode, errorMessage) {      
  	// An error occurred trying to share!
    },
    messageToShare,
    "current_thread");   
</script>

Подробнее читайте в документацииbeginShareFlow().

Подробнее →

Как получить ID пользователя и контекст переписки

Вызовите функцию getContext(), чтобы получить:

  • ID пользователя (PSID)
  • ID переписки
  • Тип переписки

Эта функция работает для всех людей, которые взаимодействуют с веб-представлением вне зависимости от того, открыта ли переписка с вашим ботом.

Помните, что если вы получите ID пользователя таким образом, это не означает, что вы сможете получить его профиль. Для этого необходимо разрешение на доступ к профилю.


Подробнее →

Управление разрешениями

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

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

Подробнее →

Советы и рекомендации

Платформа Messenger предлагает рекомендации по созданию удобного расширения чата:

  • Общий подход
  • Как использовать различные режимы публикации
  • Как контролировать веб-представление
  • Как обеспечить обратную совместимость
Подробнее →

Design Kit

Готовы разработать расширение чата? К вашим услугам наш файл Sketch, в котором есть все необходимые компоненты!

Получить Kit →

ЧаВо и устранение неполадок

Вопрос. Нужен ли мне бот, чтобы разрабатывать расширения чата?

Ответ. Да. Расширения чата являются расширениями бота.

Вопрос. За счет чего расширение чата отображается в поле для публикации сообщения?

Ответ. Расширение чата отображается в поле для публикации сообщения человека после взаимодействия с соответствующим ботом.

Вопрос. Обязательно ли иметь расширение чата, чтобы люди могли делиться материалами моего бота?

Ответ. Нет. Платформа Messenger предлагает множество других способов, позволяющих людям делиться материалами вашего бота.

Вопрос. Нужно ли мне иметь расширение чата, чтобы использовать веб-представление и Messenger Extensions Javascript SDK в своем боте? Какова связь между ними?

Ответ. Нет.     Веб-представления можно вызывать разными способами, не только через расширения чата. Все они допускают использование расширений Messenger.

Вопрос. Какие функции становятся доступны через Messenger Extensions JavaScript SDK, когда получатель расширения чата нажимает ссылку?

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

Вопрос. Работают ли расширения чата на Messenger.com или Facebook.com?

Ответ. Данная функция поддерживается только на платформах iOS и Android. Пользователи веб-клиентов могут нажимать ссылки, которыми поделились пользователи расширений чата, однако не смогут использовать функции, обеспечиваемые JavaScript SDK. Подробнее см. раздел, посвященный обратной совместимости, в руководстве по расширениям чата.

Вопрос. В чем заключается разница между публикацией в текущей переписке и в массовой рассылке?

Ответ. Расширения чата основаны на функциях публикации веб-представления, запущенных ранее в рамках процесса под названием "current_thread".

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

Вопрос. Я использую новейшую версию Messenger, но SDK не работает в веб-представлении. Что не так?

Ответ. Проверьте следующее:

  • Неопубликованная страница: Если страница, к которой прикреплен ваш бот, не опубликована, SDK не загрузится для людей, у которых нет роли (например, разработчик, администратор) на вашей странице. Добавьте человека на страницу или опубликуйте ее.

  • Свойство messenger_extension не настроено: В каждом месте, где будет открываться представление, настройте messenger_extensions на true. В том числе:


Вопрос. Я создал расширение чата, но оно не отображается в Composer. Как это исправить?

Проверьте следующее:

  1. Убедитесь, что home_url указывает на ту страницу, которую вы хотите показать, указав маркер доступа для этой страницы. При переносе бота с одной Страницы Facebook на другую домашний URL не меняется.

  2. Если в режиме разработки для атрибута in_test вы установили значение «true», убедитесь, что человек, проверяющий окно сообщений, имеет в этом боте роль разработчика, тестировщика или менеджера Страницы Facebook. Если вы выпустили бот для публичного пользования, проверьте, был ли он одобрен для использования разрешения pages_messaging.

  3. Убедитесь, что страница Facebook, к которой привязан бот, опубликована.

  4. Убедитесь, что сам бот находится в режиме открытого доступа.

  5. Убедитесь, что вы уже общались с вашим ботом.

  6. Расширения чата, отображаемые в окне Composer, кэшируются. Возможно, придется немного подождать, прежде чем оно отобразится.