Телеграм¶
Создайте бота и подключите его через веб-интерфейс сервиса или напрямую через создание внешней аутентификации.
По умолчанию все callback-вызовы Телеграма связанные с этим ботом будут приходить в Sendsay, а уже настроенный ранее бот будет записан в proxy.url и будет получать события от Sendsay - описано ниже.
Однако, если при создании бота, proxy.url указан, то будет использован именно он, а не ранее настроеный бот из Телеграм.
После подключения в системе автоматически появится группа с кодом tg_xxxx (где ххх - номер бота). Автоматический импорт в неё текущих подписчиков бота, в данный момент не возможен из-за отсутствия необходимых функций в Телеграм.
Статистика по этой группе (member.list.count) будет отражать текущее состояние подписчиков бота.
Рассылки через Телеграм¶
Для отсылки сообщений от имени бота используйте обычный вызов выпуска рассылок issue.send
Обратите внимание, что поддерживаются составные сообщения (смесь текста, картинок, видео) в одном отправлении и не надо каждую часть отправлять отдельно.
Для предоставления удобной статистики система автоматически ведёт списки подписчиков и отписавшиеся с датой события.
Для каждого подписчика типа tg эта информация так же доступна через вызов member.get по ключу данных member.tg
Чат-Боты¶
Для организации чат-ботов можно использовать Триггерные Последовательности с событиями Telegram - "Команда Боту" и "Текст Боту".
Проксирование колбеков из Telegram¶
Если в запросы из Telegram могут быть проксированы системой далее к вам если настроить proxy.url в параметрах внешней аутентификации Telegram.
При создании бота, уже имеющийся в Telegram бот будет автоматически сохранён в proxy.url, если proxy.url не указан явно.
Проксирование запросов не зависит от их обработки системой. При настроенном проксировании пришедшие запросы независимо и обрабатываются системой и передаются далее.
При ошибках проксирования выполняютсяповторы аналогично схеме, как это делает Telegram - попытки достучаться через 1, 2, 4, 8, 16, 32, 60 секунд, далее через 2, 4, 8 минут.
Обработка команд¶
По умолчанию, наш бот отвечает на любые команды, включая /start и /stop. Вид ответов можно настроить как описано ниже.
Одновременно, все команды передаются к вам если настроено проксирование.
Ответы нашим ботом могут быть неудобны, если вы хотите сами отвечать на такие команды.
Для запрета нашему боту отвечать на что либо, установать reply_disabled:1 в его внешней аутентификации.
Наш бот будет принимать команды и обрабатывать их, но не отвечать.
Исполнение команд ботов¶
Команды могут быть переданы боту разными способами:
- набранные простым сообщением
- при нажатии команды в тексте, присланном ботом
- через меню (формируется через @BotFather)
- из клавиатуры ReplyKeyboardMarkup
- из клавиатуры InlineKeyboardMarkup
- при переходе по ссылке перехода в ботhttps://t.me/your_bot- команда /start
Поступающие команды ботам обрабатываются путём отсылки ответа который берётся из подходящего черновика.
Для поиски используется алиас черновика, по формату:
и если такого нет, то
где<language_code>- двухбуквенный код языка пользователя пришедший из Telegramm
Примеры:
"my_bot/start,ru"
"my_bot/start"
Если указано больше одной команды, ответ формируется из первого найденного черновика.
Если не найден ни один черновик, ответ не формируется, за исключением команд/startи/stopдля которых тогда отправляется стандартный системный текст.
Так же, команды/startи/stopосуществляют подписку на бота и отписку от него.