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 | |
|---|---|---|
| Кто открывает соединение | Ваша программа вызывает getUpdates | SMeet отправляет HTTPS POST на ваш адрес |
| Что нужно | Исходящий HTTPS-доступ к messenger.scrile.com | Публичный HTTPS-адрес с действительным сертификатом |
| Работает за NAT | Да | Нет |
Оба режима подходят для production. В разделе Получение событий объяснено, как выбрать режим и как каждый из них гарантирует, что ничего не потеряется. Адрес Bot API: https://messenger.scrile.com/bot-api/v1.
Как проходит разговор#
- Человек открывает профиль бота через поиск или по ссылке вида
https://messenger.scrile.com/u/support_helper_bot. В профиле видны описание, автор и предупреждение, что сообщения обрабатывает разработчик бота. - Человек нажимает Начать. Бот получает событие
chat_access_changedсо статусомstarted, а за ним сообщение человека/start. - Бот отвечает через sendMessage текстом и, если нужно, кнопками.
- Нажатие кнопки приходит боту как
callback_query. Бот подтверждает его через answerCallbackQuery и может изменить своё сообщение. - Когда человек нажимает Остановить или Заблокировать, бот снова получает
chat_access_changedи больше не может писать в этот чат.
Что входит в версию 1#
- Текстовые сообщения, команды и меню команд, ответы на сообщения.
- Кнопки под сообщением: callback-кнопки и ссылки https.
- Редактирование собственных сообщений бота вместе с кнопками.
- Фото и документы в обе стороны с антивирусной проверкой, если в установке включена работа с файлами.
- Доставка через long polling и webhook, список FAILED с повтором, диагностика.
Не входят в версию 1: группы и каналы, платежи, inline-режим, боты, которые пишут первыми, и Telegram API.
Что дальше#
- Первый бот: создайте бота и получите первый ответ за несколько минут.
- Получение событий: long polling и webhook подробно.
- Рабочие примеры: готовые боты на Python и Node.js.
- Справочник API: все методы, типы и коды ошибок.