Любое событие Telegram
Обработка любых событий Telegram, которые произошли в чате с ботом. Отслеживание любого события Телеграм с помощью функционала событий
Создание обработчика событий Телеграм
Информация
Прежде чем перейти к созданию обработки события, сначала создайте новый сценарий, который будет запускаться по событию.
Чтобы настроить отслеживание любого события Telegram, перейдите в раздел "События мессенджеров и приложений", откройте вкладку Telegram.
.png)
Вкладка Telegram в разделе "События мессенджеров и приложений"
Нажмите на кнопку "Создать" и выберите "Любое событие Telegram".
.png)
Выбор события
В форме создания события заполните название и выберите сценарий.
Информация
Выбранный сценарий будет запущен в случае успешного выполнения скрипта.
Если скрипт отработает с ошибкой, то продолжится выполнение сценария с того места, где контакт находился до срабатывания события.
.png)
Создание обработчика события
Добавьте JavaScript-код в поле для ввода кода. В коде вы можете обработать события Telegram, подробнее о доступных событиях см. документацию Telegram.
Полученный от Telegram запрос доступен в объекте response:
var rawBody = response.body; // Сырое тело запроса
var data = response.data; // Объект всех переменных запроса, включая строку запроса, форму, тело и т.д.
Информация
Чтобы во время отладки посмотреть содержимое запроса, вы можете отправить его в сообщении в чат с ботом — см. пример кода Отправка содержимого запроса в сообщении в чат с ботом
Информация
При добавлении бота в группу в качестве администратора все события группы будут доступны, но все методы JS-кода будут работать только для контактов бота. Например, если инициатор события — контакт, подписанный на бота, то бот сможет отправить ему сообщение в чате методом sendMessage().
Подробнее о доступных переменных и функциях.
Важно
Для обработки событий в JavaScript-коде недоступны методы:
- goToBlock(),
- disableContinue(),
- setContactByTelegramId(id),
- setContactById(id)
Примеры
Отправка содержимого запроса в сообщении в чат с ботом
Для отладки обработки события вы можете отправить содержимого запроса в чат с ботом в сообщении. При отправке сообщения в чат — Telegram может интерпретировать специальные символы (например, подчёркивания, звёздочки) как элементы форматирования. Чтобы отобразить параметры запроса в виде корректного JSON, используйте следующий код:
var formatted = JSON.stringify(response.data, null, 2);
var message = "<pre><code>" + formatted + "</code></pre>";
sendMessage(message);
Событие Сообщение отредактировано
var data = response.data;
sendMessage("Вы отредактировали сообщение. Новое содержимое:" + data.edited_message.text);
В этом коде:
- если параметр data.edited_message.text существует, значит произошло событие edited_message. После отправки сообщения будет запущен сценарий, указанный в настройках события
- если параметр не существует, то скрипт отработает с ошибкой, выполнение вернется туда, где контакт находился до того, как отредактировал сообщение. Вы также можете вызвать исключение явным образом:
if (!data.edited_message) {
throw new Error("Ожидалось событие редактирования сообщения");
}
Пример ответа при срабатывании этого события (edited_message)
{
"update_id": 123456789,
// Событие: пользователь отредактировал сообщение
"edited_message": {
// Информация о чате, в котором произошло редактирование
"chat": {
"first_name": "First", // Имя пользователя
"id": 111111111, // ID чата (совпадает с ID пользователя в личных чатах)
"last_name": "Last", // Фамилия пользователя
"type": "private", // Тип чата: private, group, supergroup, channel
"username": "exampleuser" // Username
},
"date": 1710000000, // Время отправки исходного сообщения (UNIX-время)
"edit_date": 1710000300, // Время редактирования сообщения (UNIX-время)
// Информация об отправителе
"from": {
"first_name": "First",
"id": 111111111,
"is_bot": false,
"language_code": "en", // Язык интерфейса Telegram у пользователя
"last_name": "Last",
"username": "exampleuser"
},
"message_id": 112, // ID сообщения
"text": "Updated message text" // Обновлённый текст сообщения
}
}
Прием платежей Telegram Stars в чат-боте - создание системы продаж цифровых товаров
Пошаговое создание системы приема платежей в валюте Telegram Stars с автоматической выдачей цифровых товаров.
Изучите создание обработчиков событий через JavaScript, генерацию ссылок оплаты через Telegram Bot API, обработку успешных транзакций и построение системы продаж без интеграции внешних платежных систем.
Шаблон для установки проекта "Telegram Stars для оплаты в чат-боте | Телеграм звезды" в один клик:
Скрипт для получения тела ответа события:
var result = response.body;
sendMessage(result);
Скрипт для записи ID оплаты и типа продукта в переменные:
var payID = response.data.pre_checkout_query.id
var type = response.data.pre_checkout_query.invoice_payload
setContactVariable("payID", payID);
setContactVariable("type", type);
Интеграция GPT для обработки всех типов сообщений
Создайте умного Telegram бота: обработка текстовых сообщений, голосовых и изображений через OpenAI API. Автоматизация событий Телеграм.
Готовый шаблон для внедрения проекта "Как создать AI ассистента, который СЛЫШИТ, ВИДИТ и ПРОДАЕТ — за 1 урок (GPT + Tелеграм)" в один клик:
Скрипт для события получения сообщения пользователя и определения его типа:
var d = (response && response.data) ? response.data : (response || {});
var m = (d.message) || (d.result && d.result[0] && d.result[0].message) || {};
setContactVariable("debugData", JSON.stringify(m));
var t = (m && m.text) || "";
// Сначала текст
if (t) {
setContactVariable("messageType", "text");
setContactVariable("textMessage1", t);
}
// Потом голос
else if (m.voice && m.voice.file_id) {
setContactVariable("messageType", "voice");
setContactVariable("voiceFileId", m.voice.file_id);
}
// Если фото
else if (m.photo && m.photo.length > 0) {
var ph = m.photo[m.photo.length - 1]; // берём самое большое фото
setContactVariable("messageType", "photo");
setContactVariable("photoFileId1", ph.file_id);
// Сохраняем подпись, если есть
if (typeof m.caption === "string" && m.caption) {
setContactVariable("captionText", m.caption);
}
}
// Остальное
else {
setContactVariable("messageType", "other");
}
В личном кабинете LEADTEX уже доступны 250+ уроков по разработке чат-ботов и MiniApps, а также возможность присоединиться к крупнейшему комьюнити no-code разработчиков с 6000+ участниками - Перейти в личный кабинет.