Функции для отправки и редактирования сообщений

Как отправлять сообщения с помощью аккаунта 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 в соответствующем поле. Параметр должен быть словарём. Смотрите вкладку с примером для справки.

chevron-rightПодробный примерhashtag

Рассмотрим простой пример с набором обязательных параметров:

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 — чтобы включить. >Уведомление — это всплывающее окно с текстом сообщения. Давайте включим его.

  • Далее собираем функцию. Не забудьте присвоить функцию переменной — это позволит отслеживать статус отправки сообщения.

Поле "Calculator"

Вот что у нас получилось: После того как клиент отправит нам ключевое слово 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)

circle-info

Чтобы присвоить переменной текст с переносами строк, укажите значение следующим образом:

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 значение используется при подключении бота и отображается в каналах. Его следует указать, если в параметрах присутствует токен бота и сообщение нужно отправить через пользовательский аккаунт, привязанный к боту.

chevron-rightПримерhashtag

Пример передачи параметра: 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

circle-exclamation

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 сообщения

! реакция

Требуемая реакция передаётся в виде строки.

chevron-rightПримерhashtag

Пример кода для копирования:

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-клавиатуру в сообщении

Параметр
Описание

! platform_id

ID пользователя Telegram, которому следует отправить сообщение *

! message_id

ID сообщения, которое нужно отредактировать. Этот ID необходимо заранее сохранить при отправке сообщения.

! reply_markup

Настройки кнопки **

circle-exclamation
chevron-rightПример: редактирование сообщения через Telegram APIhashtag

Ниже вы найдёте подробный пример работы с функциями 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

chevron-rightПример кода для копированияhashtag

Пример 1

Пример 2

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

chevron-rightПример конфигурацииhashtag

Итак, отправим себе сообщение с inline-клавиатурой:

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

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

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

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

chevron-rightПример кода для копированияhashtag

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

chevron-rightПримерhashtag

Давайте отправим сообщение и сохраним его ID.

А затем скопируем ранее отправленное сообщение.

chevron-rightПример кода для копированияhashtag

Последнее обновление