SMeetBot API

SMeet Bot API

Обзор

Бот SMeet работает как программа на вашем сервере и общается с людьми в SMeet. Люди находят бота, нажимают «Начать» и пишут ему; ваша программа получает их сообщения через Bot API и отвечает.

Что такое бот#

Бот выглядит в SMeet как особый аккаунт с пометкой Бот рядом с именем. Его сообщения пишет программа, а не человек. Программа работает на сервере автора и обращается к SMeet Bot API по HTTPS: получает события (сообщения, нажатия кнопок, изменения доступа) и вызывает методы, например sendMessage.

  • Бот пишет только в личные чаты и только после того, как человек нажал Начать. Сам начать разговор бот не может.
  • Управление остаётся у человека: Остановить или Заблокировать сразу лишают бота права писать, и код бота не может это отменить.
  • Bot API принадлежит самому SMeet. Он несовместим с Telegram Bot API, библиотеки для Telegram с ним не работают.

Где работают боты#

Каждый бот принадлежит ровно одному пространству: публичному пространству SMeet или одной организации. Токен бота действует только в этом пространстве, а бота организации не видят люди, которые в неё не входят. Подробности в разделе Организации и доступ.

В версии 1 боты работают только в личных чатах. Добавить бота в группу, тему или канал нельзя.

Боты поддерживаются в веб-приложении SMeet и в SMeet для iOS и macOS: профиль бота, кнопка Начать, меню команд после «/», кнопки под сообщениями и файлы. Другие приложения и старые версии показывают сообщения бота обычным текстом без кнопок, а при отправке сообщения боту могут попросить обновить приложение.

SMeet BotFather#

SMeet BotFather (@smeet_botfather) является собственным ботом платформы. Откройте его в любом пространстве, где вам разрешено создавать ботов, и он проведёт по остальным шагам:

  • /newbot создаёт бота: имя для людей и адрес, который заканчивается на _bot;
  • /mybots показывает список ваших ботов; в карточке бота видны его статус, очередь и ошибки доставки;
  • /setname, /setdescription и /setcommands меняют профиль и меню команд;
  • /pause, /resume, /revoke и /deletebot приостанавливают, возобновляют, отзывают токен и удаляют бота.

BotFather никогда не присылает токен в чат. Для токена и для настроек доставки он показывает кнопку, которая открывает защищённый экран Мои боты в вашем приложении. Полный список команд в разделе Управление ботом.

Где работает ваш код#

SMeet не выполняет код ботов. Ваша программа работает там, где вы решите: на сервере, в контейнере, в облачной функции. SMeet хранит очередь событий до 7 суток и доставляет их одним из двух способов, который выбирает владелец бота:

Long polling (по умолчанию)Webhook
Кто открывает соединениеВаша программа вызывает getUpdatesSMeet отправляет HTTPS POST на ваш адрес
Что нужноИсходящий HTTPS-доступ к messenger.scrile.comПубличный HTTPS-адрес с действительным сертификатом
Работает за NATДаНет

Оба режима подходят для production. В разделе Получение событий объяснено, как выбрать режим и как каждый из них гарантирует, что ничего не потеряется. Адрес Bot API: https://messenger.scrile.com/bot-api/v1.

Как проходит разговор#

  1. Человек открывает профиль бота через поиск или по ссылке вида https://messenger.scrile.com/u/support_helper_bot. В профиле видны описание, автор и предупреждение, что сообщения обрабатывает разработчик бота.
  2. Человек нажимает Начать. Бот получает событие chat_access_changed со статусом started, а за ним сообщение человека /start.
  3. Бот отвечает через sendMessage текстом и, если нужно, кнопками.
  4. Нажатие кнопки приходит боту как callback_query. Бот подтверждает его через answerCallbackQuery и может изменить своё сообщение.
  5. Когда человек нажимает Остановить или Заблокировать, бот снова получает chat_access_changed и больше не может писать в этот чат.

Что входит в версию 1#

  • Текстовые сообщения, команды и меню команд, ответы на сообщения.
  • Кнопки под сообщением: callback-кнопки и ссылки https.
  • Редактирование собственных сообщений бота вместе с кнопками.
  • Фото и документы в обе стороны с антивирусной проверкой, если в установке включена работа с файлами.
  • Доставка через long polling и webhook, список FAILED с повтором, диагностика.

Не входят в версию 1: группы и каналы, платежи, inline-режим, боты, которые пишут первыми, и Telegram API.

Что дальше#