Функции для отправки и редактирования сообщений
Как отправлять сообщения с помощью аккаунта Telegram Business
tg_send_message(platform_id, text,client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities)
Параметры:
! platform_id
ID пользователя Telegram, которому следует отправить сообщение *
! text
Текст сообщения
client_message_id
ID сообщения, на которое нужно сослаться
reply_markup
Настройки кнопки **
parse_mode
Полужирное и курсивное форматирование текста в описании ***. Оно может принимать значения вроде html, markdown, markdownV2.
disable_web_page_preview
Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "".
protect_content
Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.
disable_notification
Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.
message_thread_id
ID темы (доступно для супергрупп с включённой функцией форумов)
entities
Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём. Смотрите вкладку с примером для справки.
Подробный пример
Рассмотрим простой пример с набором обязательных параметров:

platform_id указывает идентификатор конкретного клиента.
Смотрите тот же пример, но с использованием переменных:

В этом примере переменная soob будет содержать ответ сервера после отправки сообщения.

Если вы сохраните message_id из полученного ответа, это позволит вам затем работать с этим сообщением (редактировать, удалять, пересылать, комментировать).
Часто возникают трудности при использовании всех параметров. Рассмотрим следующий пример:
Сначала объявим все параметры, используемые в функции. Помните, что параметры можно передавать не только как значения, но и как переменные, что часто удобнее и понятнее. Такие переменные, как platform_id и client_message_id, можно получить из карточки профиля клиента. platform_id — идентификатор клиента Telegram, которому должно быть отправлено сообщение * >Мы ответим в том же чате, где пишет клиент
text - текст сообщения. >Мы используем форматирование текста — например, выделение жирным.
client_message_id - ID сообщения, на которое нужно сослаться >В чатах этой переменной значение присваивается автоматически. reply_markup — настройки кнопок **. >Присвоим его переменной opts. parse_mode — Полужирное и курсивное форматирование текста в описании ***. Оно может принимать значения вроде html, markdown, markdownV2. Символы, используемые для форматирования текста сообщения, описаны здесь. >Используем markdown. disable_web_page_preview - Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "". >Можно передать любое значение, так как текст сообщения не содержит ссылки. protect_content — Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить. >Нам не нужна защита контента, поэтому передадим пустую строку ''. disable_notification — Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить. >Уведомление — это всплывающее окно с текстом сообщения. Давайте включим его.
Далее собираем функцию. Не забудьте присвоить функцию переменной — это позволит отслеживать статус отправки сообщения.

Вот что у нас получилось: После того как клиент отправит нам ключевое слово test, мы ответим, процитировав его сообщение.
В ok мы видим статус отправки; далее идёт информация о самом сообщении — его ID, данные отправителя и содержимое.
Пример с entities параметром Вы можете сохранить исходную строку в переменную, как показано ниже:
text = "qwert asdfg zxcvb poiuy lkjhg 12345"
Нужно записать параметр в виде словаря с данными и указать нужное форматирование, обозначив шрифты:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":" https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
Передайте параметр последним в используемой функции. Параметр можно передавать как в tg_send_message, так и в tg_send_message_1:
x = tg_send_message(platform_id, text, None, None, None, False, False, False, None, entities)
Чтобы присвоить переменной текст с переносами строк, укажите значение следующим образом:
text = "Первая строка текста" + "\n" + "Вторая строка текста" + "\n" + "Третья строка"
Как отправить сообщение, указав конкретного бота Telegram
tg_send_message_1(token, platform_id, text, client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities, business_connection_id)
! token
Токен бота Telegram, полученный от BotFather
! platform_id
ID пользователя Telegram, которому следует отправить сообщение *
! text
Текст сообщения
client_message_id
ID сообщения, на которое нужно сослаться
reply_markup
Настройки кнопки **
parse_mode
Полужирное и курсивное форматирование текста в описании ***. Оно может принимать значения вроде html, markdown, markdownV2.
disable_web_page_preview
Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "".
protect_content
Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.
disable_notification
Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.
message_thread_id
ID темы (доступно для супергрупп с включённой функцией форумов)
entities
Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.
business_connection_id
Текст Business ID значение используется при подключении бота и отображается в каналах. Его следует указать, если в параметрах присутствует токен бота и сообщение нужно отправить через пользовательский аккаунт, привязанный к боту.
Пример
Пример передачи параметра:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
В примере показан только словарь, тогда как сам текст сообщения присваивается отдельной переменной.
Как редактировать текст в сообщении Telegram
Обратите внимание!
Функция редактирования сообщения доступна только для новых и недавно отправленных сообщений.
Временной интервал, в течение которого разрешено редактирование сообщения, определяется самим мессенджером и зависит от нагрузки/активности вашего бота; он может быть сокращён для редактирования.
По данным технической поддержки мессенджера, оптимальный срок для редактирования сообщения — 48 часов.
tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview, entities)
! platform_id
ID пользователя Telegram, которому следует отправить сообщение *
! message_id
ID сообщения, которое нужно отредактировать. Этот ID необходимо заранее сохранить при отправке сообщения.
! text
Текст сообщения
reply_markup
Настройки кнопки **
parse_mode
Полужирное и курсивное форматирование текста в описании ***. Оно может принимать значения вроде html, markdown, markdownV2.
disable_web_page_preview
Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "".
entities
Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.
Как отправить реакцию на сообщение
tg_set_reaction(platform_id, message_id, reaction)
! platform_id
ID чата Telegram
! message_id
ID сообщения
! реакция
Требуемая реакция передаётся в виде строки.
Пример
Пример кода для копирования:
react = tg_set_reaction(platform_id, 1556, '👌')
Пример в калькуляторе:

Как редактировать описание вложения
tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode, entities, show_caption_above_media)
! platform_id
ID пользователя Telegram, которому следует отправить сообщение *
! message_id
ID сообщения, которое нужно отредактировать
! caption
Текст описания
reply_markup
Настройки кнопки **
parse_mode
Полужирное и курсивное форматирование текста в описании ***. Оно может принимать значения вроде html, markdown, markdownV2.
entities
Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.
Пример передачи параметра:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://,mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
В примере показан только словарь, тогда как сам текст сообщения присваивается отдельной переменной.
show_caption_above_media
Принимает значение True; если указан этот параметр, текст сообщения будет отображаться над вложением.
Как редактировать медиа-вложения в сообщении
! platform_id
ID пользователя Telegram, которому следует отправить сообщение *
! message_id
ID сообщения, которое нужно отредактировать. Этот ID необходимо заранее сохранить при отправке сообщения.
! media
Словарь, описывающий медиафайл:
Пример словаря JSON для замены ранее отправленной фотографии:
media = '{"type": "photo", "media": "<file_to_send>"}'
где <file_to_send> рекомендуется указывать как file_id, полученный через полный вебхук Telegram.
Для получения более подробной информации параметры словаря описаны в официальной документации Telegram.
reply_markup
Настройки кнопки **
Как редактировать inline-клавиатуру в сообщении
Можно редактировать только inline-клавиатуру.
Пример: редактирование сообщения через Telegram API
Ниже вы найдёте подробный пример работы с функциями Telegram API для редактирования сообщений.
Как скопировать сообщение
tg_copy_message(platform_id, from_chat_id, message_id, reply_to_message_id, reply_markup, parse_mode, protect_content, disable_notification, caption, message_thread_id, entities, show_caption_above_media)
! platform_id
ID пользователя Telegram, КОТОРОМУ следует скопировать сообщение *
! from_chat_id
ID пользователя Telegram, ИЗ которого следует скопировать сообщение *
! message_id
ID сообщения, которое нужно скопировать
reply_to_message_id
ID исходного сообщения, если копируемое сообщение является комментарием
reply_markup
Настройки кнопки **
parse_mode
Полужирное и курсивное форматирование текста в описании ***.
Оно может принимать значения вроде html, markdown, markdownV2.
protect_content
Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.
disable_notification
Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.
caption -
Описание длиной до 1024 символов.
message_thread_id
ID темы (доступно для супергрупп с включённой функцией форумов)
entities
Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.
Пример передачи параметра:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
В примере показан только словарь, тогда как сам текст сообщения присваивается отдельной переменной.
show_caption_above_media
Принимает значение True; если указан этот параметр, текст сообщения будет отображаться над вложением.
Как переслать сообщение
tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)
! platform_id
ID пользователя Telegram, КОТОРОМУ следует отправить сообщение *
! from_chat_id
ID пользователя Telegram, ОТ КОТОРОГО следует отправить сообщение *
! message_id
ID пересылаемого сообщения
protect_content
Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.
disable_notification
Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.
message_thread_id
ID темы (доступно для супергрупп с включённой функцией форумов)
Как удалить сообщение
tg_delete_message(platform_id, message_id)
! Используйте этот метод для удаления сообщения, включая служебные сообщения, со следующими ограничениями:
Сообщение можно удалить только если оно было отправлено менее 48 часов назад.
Сообщения с кубиком в личном чате можно удалить только если они были отправлены более 24 часов назад.
Боты могут удалять исходящие сообщения в личных чатах, группах и супергруппах.
Боты могут удалять входящие сообщения в личных чатах.
Боты с can_post_messages разрешением могут удалять исходящие сообщения в каналах.
Если бот является администратором группы, он может удалять там любые сообщения.
Если у бота есть can_delete_messages разрешение в супергруппе или канале, он может удалять там любые сообщения.
! platform_id
ID пользователя Telegram *
! message_id
ID сообщения, которое нужно удалить
Как удалить несколько сообщений
tg_delete_messages(platform_id, message_ids)
! Используйте этот метод для удаления сообщения, включая служебные сообщения, со следующими ограничениями:
Сообщение можно удалить только если оно было отправлено менее 48 часов назад.
Сообщения с кубиком в личном чате можно удалить только если они были отправлены более 24 часов назад.
Боты могут удалять исходящие сообщения в личных чатах, группах и супергруппах.
Боты могут удалять входящие сообщения в личных чатах.
Боты с can_post_messages разрешением могут удалять исходящие сообщения в каналах.
Если бот является администратором группы, он может удалять там любые сообщения.
Если у бота есть can_delete_messages разрешение в супергруппе или канале, он может удалять там любые сообщения.
! platform_id
ID пользователя Telegram
! message_ids
Массив ID сообщений, которые нужно удалить. Максимум 100 элементов.
Пример: отправка сообщения через Telegram API
Пример: редактирование сообщения через Telegram API
Пример конфигурации
Итак, отправим себе сообщение с inline-клавиатурой:

Затем отредактируем текст сообщения:

И отредактируем кнопки:

Попробуем отредактировать сообщение с изображением. Для этого отправьте сообщение с изображением и сохраните ID отправленного сообщения. Прочитайте подробные инструкции о том, как получить URL изображения здесь:

Теперь отредактируем изображение и его описание:

Пример: копирование сообщения через Telegram API
Последнее обновление

