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

## **Как отправлять сообщения с помощью аккаунта 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)**&#x20;

Параметры:

<table><thead><tr><th width="324.87890625">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID пользователя Telegram, которому следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> text</strong></td><td>Текст сообщения</td></tr><tr><td><strong>client_message_id</strong> </td><td>ID сообщения, на которое нужно сослаться</td></tr><tr><td><strong>reply_markup</strong></td><td>Настройки кнопки  <a href="/pages/b22176ca645c1659b334913de11046eb50d9b018#how-to-delete-reply-buttons"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td>Полужирное и курсивное форматирование текста в описании<a href="/pages/69fbf100dc32f62f3d93247c51638882d67c5ccc#markdown-markup"> <strong>***</strong></a><strong>.</strong> Оно может принимать значения вроде html, markdown, markdownV2.</td></tr><tr><td><strong>disable_web_page_preview</strong></td><td>Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "".</td></tr><tr><td><strong>protect_content</strong></td><td>Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.</td></tr><tr><td><strong>disable_notification</strong></td><td>Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.</td></tr><tr><td><strong>message_thread_id</strong></td><td>ID темы (доступно для супергрупп с включённой функцией форумов)</td></tr><tr><td><strong>entities</strong></td><td>Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём. Смотрите вкладку с примером для справки.</td></tr></tbody></table>

<details>

<summary><mark style="color:оранжевый;"><strong>Подробный пример</strong></mark></summary>

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

<div data-with-frame="true"><figure><img src="/files/45ef449001af52277ee6fdca403af99639b71458" alt="" width="563"><figcaption></figcaption></figure></div>

platform\_id указывает идентификатор конкретного клиента.

Смотрите тот же пример, но с использованием переменных:

<div data-with-frame="true"><figure><img src="/files/7b405e9b5f55ab346c845e6f2a7cfe35e36f09ab" alt=""><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/ab8c7eb059d14e27f2a1e0640cf9476974a3bd10" alt="" width="356"><figcaption></figcaption></figure></div>

Если вы сохраните `message_id` из полученного ответа, это позволит вам затем работать с этим сообщением (редактировать, удалять, пересылать, комментировать).

Часто возникают трудности при использовании всех параметров. Рассмотрим следующий пример:

* Сначала объявим все параметры, используемые в функции. Помните, что параметры можно передавать не только как значения, но и как переменные, что часто удобнее и понятнее. Такие переменные, как platform\_id и client\_message\_id, можно получить из карточки профиля клиента. \
  &#x20;**platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)\ <mark style="color:зелёный;">>Мы ответим в том же чате, где пишет клиент</mark>

  **text** - текст сообщения. \ <mark style="color:зелёный;">>Мы используем форматирование текста — например, выделение жирным.</mark>

  **client\_message\_id** - ID сообщения, на которое нужно сослаться\ <mark style="color:зелёный;">>В чатах этой переменной значение присваивается автоматически.</mark>\
  **reply\_markup** — настройки кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)**.** \ <mark style="color:зелёный;">>Присвоим его переменной opts.</mark>\
  **parse\_mode** — Полужирное и курсивное форматирование текста в описании [**\*\*\***](#kak-ispolzovat-razmetku-teksta-markdown-v-parametre-parse_mode)**.** Оно может принимать значения вроде html, markdown, markdownV2. Символы, используемые для форматирования текста сообщения, описаны[ здесь](/doc/ru/chatbot/builder/telegram_messages.md). \ <mark style="color:зелёный;">>Используем markdown.</mark> \
  **disable\_web\_page\_preview -** Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "".\ <mark style="color:зелёный;">>Можно передать любое значение, так как текст сообщения не содержит ссылки.</mark>\
  **protect\_content** — Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.\ <mark style="color:зелёный;">>Нам не нужна защита контента, поэтому передадим пустую строку</mark> <mark style="color:зелёный;">''.</mark>\
  **disable\_notification** —  Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.\ <mark style="color:зелёный;">>Уведомление — это всплывающее окно с текстом сообщения. Давайте включим его.</mark>
* Далее собираем функцию. Не забудьте присвоить функцию переменной — это позволит отслеживать статус отправки сообщения.

<div data-with-frame="true"><figure><img src="/files/fd5de894e38985b7d10760f6ad158ff42a0251e3" alt="" width="563"><figcaption><p>Поле "Calculator"</p></figcaption></figure></div>

Вот что у нас получилось:\
После того как клиент отправит нам ключевое слово 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":"``    `<mark style="color:красный;">**`https://mavibot.ai"}`**</mark>`,{"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`)

</details>

{% hint style="info" %}
Чтобы присвоить переменной текст с переносами строк, укажите значение следующим образом:

`text = "Первая строка текста" + "\n" + "Вторая строка текста" + "\n" + "Третья строка"`
{% endhint %}

## Как отправить сообщение, указав конкретного бота 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)

<table><thead><tr><th width="288.94140625">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> token</strong></td><td>Токен бота Telegram, полученный от BotFather</td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID пользователя Telegram, которому следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> text</strong></td><td>Текст сообщения</td></tr><tr><td><strong>client_message_id</strong></td><td>ID сообщения, на которое нужно сослаться</td></tr><tr><td><strong>reply_markup</strong></td><td>Настройки кнопки  <a href="/pages/b22176ca645c1659b334913de11046eb50d9b018#how-to-delete-reply-buttons"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td>Полужирное и курсивное форматирование текста в описании <a href="/pages/69fbf100dc32f62f3d93247c51638882d67c5ccc"><strong>***</strong></a><strong>.</strong> Оно может принимать значения вроде html, markdown, markdownV2.</td></tr><tr><td><strong>disable_web_page_preview</strong></td><td>Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "".</td></tr><tr><td><strong>protect_content</strong></td><td>Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.</td></tr><tr><td><strong>disable_notification</strong></td><td>Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.</td></tr><tr><td><strong>message_thread_id</strong> </td><td>ID темы (доступно для супергрупп с включённой функцией форумов)</td></tr><tr><td><strong>entities</strong></td><td>Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.</td></tr><tr><td><strong>business_connection_id</strong></td><td>Текст <strong>Business ID</strong> значение используется при подключении бота и отображается в каналах. Его следует указать, если в параметрах присутствует токен бота и сообщение нужно отправить через пользовательский аккаунт, привязанный к боту.</td></tr></tbody></table>

<details>

<summary>Пример</summary>

Пример передачи параметра:\
`entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"`<mark style="color:красный;">**`https://mavibot.ai"},`**</mark>`{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]`

В примере показан только словарь, тогда как сам текст сообщения присваивается отдельной переменной.

</details>

## Как редактировать текст в сообщении Telegram

{% hint style="warning" %}
Обратите внимание!&#x20;

Функция редактирования сообщения доступна только для новых и недавно отправленных сообщений. <br>

Временной интервал, в течение которого разрешено редактирование сообщения, определяется самим мессенджером и зависит от нагрузки/активности вашего бота; он может быть сокращён для редактирования. <br>

По данным технической поддержки мессенджера, оптимальный срок для редактирования сообщения — 48 часов.
{% endhint %}

tg\_edit\_message\_text(platform\_id, message\_id, text, reply\_markup, parse\_mode, disable\_web\_page\_preview, entities)

<table><thead><tr><th width="270.03125">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID пользователя Telegram, которому следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> message_id</strong></td><td>ID сообщения, которое нужно отредактировать. Этот ID необходимо заранее сохранить при отправке сообщения.</td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> text</strong></td><td>Текст сообщения</td></tr><tr><td><strong>reply_markup</strong></td><td>Настройки кнопки  <a href="/pages/b22176ca645c1659b334913de11046eb50d9b018#how-to-delete-reply-buttons"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td>Полужирное и курсивное форматирование текста в описании <a href="/pages/69fbf100dc32f62f3d93247c51638882d67c5ccc"><strong>***</strong></a><strong>.</strong> Оно может принимать значения вроде html, markdown, markdownV2.</td></tr><tr><td><strong>disable_web_page_preview</strong> </td><td>Показывать предпросмотр ссылки. Чтобы отключить его, передайте 1; в противном случае передайте 0 или оставьте пустым "".</td></tr><tr><td><strong>entities</strong></td><td>Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.</td></tr></tbody></table>

## Как отправить реакцию на сообщение

tg\_set\_reaction(platform\_id, message\_id, reaction)

<table><thead><tr><th width="305.015625">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark> platform_id</td><td>ID чата Telegram</td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark> message_id</td><td>ID сообщения</td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark> реакция</td><td>Требуемая реакция передаётся в виде строки.</td></tr></tbody></table>

<details>

<summary>Пример</summary>

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

react = tg\_set\_reaction(platform\_id, 1556, '👌')

Пример в калькуляторе:

<div align="center" data-with-frame="true"><figure><img src="/files/9632b14406bd1077f203e5f02ebd609bba4d02e3" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

## Как редактировать описание вложения

**tg\_edit\_message\_caption(platform\_id, message\_id, caption, reply\_markup, parse\_mode, entities, show\_caption\_above\_media)**

<table><thead><tr><th width="305.015625">Параметр </th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark> platform_id</td><td>ID пользователя Telegram, которому следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark> message_id</td><td>ID сообщения, которое нужно отредактировать</td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> caption</strong></td><td>Текст описания</td></tr><tr><td><strong>reply_markup</strong></td><td>Настройки кнопки <a href="#kak-propisyvat-knopki-v-parametre-reply_markup"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td>Полужирное и курсивное форматирование текста в описании<a href="/pages/69fbf100dc32f62f3d93247c51638882d67c5ccc"> <strong>***</strong></a><strong>.</strong>  Оно может принимать значения вроде html, markdown, markdownV2.</td></tr><tr><td><strong>entities</strong> </td><td><p>Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.<br><br>Пример передачи параметра:<br><code>entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"</code><mark style="color:красный;"><strong><code>https://,mavibot.ai"}</code></strong></mark><code>,{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]</code></p><p></p><p>В примере показан только словарь, тогда как сам текст сообщения присваивается отдельной переменной.</p></td></tr><tr><td><strong>show_caption_above_media</strong></td><td>Принимает значение True; если указан этот параметр, текст сообщения будет отображаться над вложением.</td></tr></tbody></table>

## Как редактировать медиа-вложения в сообщении

<table><thead><tr><th width="270.03125">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID пользователя Telegram, которому следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> message_id</strong></td><td>ID сообщения, которое нужно отредактировать. Этот ID необходимо заранее сохранить при отправке сообщения. </td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> media</strong></td><td><p>Словарь, описывающий медиафайл:<br><em>Пример словаря JSON для замены ранее отправленной фотографии:</em><br><code>media = '{"type": "photo", "media": "&#x3C;file_to_send>"}'</code></p><p></p><p>где &#x3C;file_to_send> рекомендуется указывать как file_id, полученный через полный <a href="/pages/ac4e46ca19024348bc0de61a090304cfffcde83c">вебхук Telegram</a>. </p><p></p><p>Для получения более подробной информации параметры словаря описаны в официальной <a href="/pages/3e9d5361adb77ca7712b48fba5da320149dbac38">документации Telegram</a>. </p></td></tr><tr><td><strong>reply_markup</strong></td><td>Настройки кнопки <a href="#kak-propisyvat-knopki-v-parametre-reply_markup"><strong>**</strong></a></td></tr></tbody></table>

## **Как редактировать inline-клавиатуру в сообщении**

<table><thead><tr><th width="270.03125">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID пользователя Telegram, которому следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> message_id</strong></td><td>ID сообщения, которое нужно отредактировать. Этот ID необходимо заранее сохранить при отправке сообщения. </td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> reply_markup</strong></td><td>Настройки кнопки <a href="#kak-propisyvat-knopki-v-parametre-reply_markup"><strong>**</strong></a></td></tr></tbody></table>

{% hint style="warning" %}
Можно редактировать только inline-клавиатуру.
{% endhint %}

<details>

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

Ниже вы найдёте подробный пример работы с функциями Telegram API для редактирования сообщений.&#x20;

</details>

## Как скопировать сообщение

**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)**

<table><thead><tr><th width="270.03125">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td> <mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID пользователя Telegram, КОТОРОМУ следует скопировать сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> from_chat_id</strong> </td><td>ID пользователя Telegram, ИЗ которого следует скопировать сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> message_id</strong></td><td>ID сообщения, которое нужно скопировать</td></tr><tr><td><strong>reply_to_message_id</strong> </td><td>ID исходного сообщения, если копируемое сообщение является комментарием</td></tr><tr><td><strong>reply_markup</strong> </td><td>Настройки кнопки <a href="#kak-propisyvat-knopki-v-parametre-reply_markup"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td><p>Полужирное и курсивное форматирование текста в описании <a href="/pages/69fbf100dc32f62f3d93247c51638882d67c5ccc"><strong>***</strong></a><strong>.</strong></p><p>Оно может принимать значения вроде html, markdown, markdownV2.</p></td></tr><tr><td><strong>protect_content</strong></td><td>Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.</td></tr><tr><td><strong>disable_notification</strong> </td><td>Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.                          </td></tr><tr><td><strong>caption</strong> - </td><td>Описание длиной до 1024 символов.</td></tr><tr><td><strong>message_thread_id</strong> </td><td>ID темы (доступно для супергрупп с включённой функцией форумов)</td></tr><tr><td><strong>entities</strong> </td><td>Это позволяет копировать предварительно отформатированный текст вместе со всеми его стилями и просто указывать диапазон символов, к которому должен применяться определённый шрифт. Пример можно найти в tg_request в соответствующем поле. Параметр должен быть словарём.<br><br>Пример передачи параметра: <br><code>entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":</code><mark style="color:красный;"><strong><code>"https://mavibot.ai"}</code></strong></mark><code>,{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]</code>  <br><br>В примере показан только словарь, тогда как сам текст сообщения присваивается отдельной переменной.</td></tr><tr><td><strong>show_caption_above_media</strong> </td><td>Принимает значение True; если указан этот параметр, текст сообщения будет отображаться над вложением.</td></tr></tbody></table>

## Как переслать сообщение

**tg\_forward\_message(platform\_id, from\_chat\_id, message\_id, protect\_content, disable\_notification,** **message\_thread\_id)**&#x20;

<table><thead><tr><th width="312.0703125">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID пользователя Telegram, КОТОРОМУ следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> from_chat_id</strong></td><td>ID пользователя Telegram, ОТ КОТОРОГО следует отправить сообщение <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> message_id</strong></td><td>ID пересылаемого сообщения</td></tr><tr><td><strong>protect_content</strong></td><td>Флаг защиты контента. Передайте любое значение, кроме 0, False или '', чтобы включить.</td></tr><tr><td><strong>disable_notification</strong></td><td>Флаг звукового уведомления (по умолчанию: 0). Передайте 1, чтобы отключить уведомление, 0 — чтобы включить.</td></tr><tr><td><strong>message_thread_id</strong> </td><td>ID темы (доступно для супергрупп с включённой функцией форумов)</td></tr></tbody></table>

## Как удалить сообщение

**tg\_delete\_message(platform\_id, message\_id)**&#x20;

<mark style="color:красный;">**!**</mark> Используйте этот метод для удаления сообщения, включая служебные сообщения, со следующими ограничениями:

* Сообщение можно удалить только если оно было отправлено менее 48 часов назад.
* Сообщения с кубиком в личном чате можно удалить только если они были отправлены более 24 часов назад.
* Боты могут удалять исходящие сообщения в личных чатах, группах и супергруппах.
* Боты могут удалять входящие сообщения в личных чатах.
* Боты с **can\_post\_messages** разрешением могут удалять исходящие сообщения в каналах.
* Если бот является администратором группы, он может удалять там любые сообщения.
* Если у бота есть **can\_delete\_messages** разрешение в супергруппе или канале, он может удалять там любые сообщения.&#x20;

<table><thead><tr><th width="294.3203125">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID пользователя Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark><strong> message_id</strong></td><td>ID сообщения, которое нужно удалить</td></tr></tbody></table>

## **Как удалить несколько сообщений**

tg\_delete\_messages(platform\_id, message\_ids)

<mark style="color:красный;">**!**</mark> Используйте этот метод для удаления сообщения, включая служебные сообщения, со следующими ограничениями:

* Сообщение можно удалить только если оно было отправлено менее 48 часов назад.
* Сообщения с кубиком в личном чате можно удалить только если они были отправлены более 24 часов назад.
* Боты могут удалять исходящие сообщения в личных чатах, группах и супергруппах.
* Боты могут удалять входящие сообщения в личных чатах.
* Боты с **can\_post\_messages** разрешением могут удалять исходящие сообщения в каналах.
* Если бот является администратором группы, он может удалять там любые сообщения.
* Если у бота есть **can\_delete\_messages** разрешение в супергруппе или канале, он может удалять там любые сообщения.&#x20;

<table><thead><tr><th width="288.06640625">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark> platform_id</td><td>ID пользователя Telegram </td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark> message_ids</td><td>Массив ID сообщений, которые нужно удалить. Максимум 100 элементов.</td></tr></tbody></table>

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

<details>

<summary>Пример кода для копирования</summary>

Пример 1

```
/*Удобно заранее определить текст в переменной*/
text='Writing-writing-witing text'
/*Функция отправки сообщения*/
soob=tg_send_message(platform_id, text)
/*Сохраняем ID отправленного сообщения*/
soob_id=soob['result']['message_id']

```

Пример 2

```
id_group=-1001847103100
text='Тестирование отправки сообщения через метод API. Например, *жирный текст*'
opts = {"inline_keyboard": [[{"text": "👍","callback_data":1}, {"text": "👎","callback_data":2}]]}
disable_web_page_preview=1
protect_content=''
disable_notification=1
parse_mode='markdown'
soob=tg_send_message(id_group, text,client_message_id, opts, parse_mode, disable_web_page_preview, protect_content, disable_notification) 


```

</details>

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

<details>

<summary>Пример конфигурации</summary>

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

<div data-with-frame="true"><figure><img src="/files/2c24849dddd89d321336a74da93070adc82dd726" alt="" width="563"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/f8f2e39b7d77600b5ecd6a3dcaf845baf6cfb59b" alt="" width="563"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/991b5dcdd0e2dab8e2e42a2517a4d824e22ebf5e" alt="" width="563"><figcaption></figcaption></figure></div>

Попробуем отредактировать сообщение с изображением. Для этого отправьте сообщение с изображением и сохраните ID отправленного сообщения. Прочитайте подробные инструкции о том, как получить URL изображения [здесь](/doc/ru/chatbot/messendzhery/telegram/api/messages.md):&#x20;

<div data-with-frame="true"><figure><img src="/files/ace3509396dae0d6428790b3cd79602d0c303e23" alt="" width="563"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/b2c488b0ce60b51974ec9619809f48cc0ed2bd0e" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Пример кода для копирования</summary>

```
/*Удобно заранее определить параметры в переменной.*/
text='Какой пакет вы хотите выбрать?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функция отправки сообщения*/
soob=tg_send_message(platform_id, text, None, opts)
/*Сохраняем ID отправленного сообщения*/
soob_id=soob['result']['message_id']

/*Редактируем сообщение*/
text='Какой пакет вас интересует?'
tg_edit_message_text(platform_id, soob_id, text, opts)  

/*Редактируем inline-клавиатуру*/
opts = {"inline_keyboard": [[{"text": "Стандарт","callback_data":1}, {"text": "Премиум","callback_data":2}]]}
tg_edit_message_reply_markup(platform_id, soob_id, opts)


/*Отправляем изображение с описанием*/
soob=tg_send_photo(platform_id, "AgACAgIAAxkBAAIPpWO4T7jhOgYHq6uR8rjnq9rIvBs-AAJlwDEb5fHASaGdhzgWjyn7AQADAgADeAADLQQ", "Это изображение")
/*Сохраняем ID отправленного сообщения*/
soob_id=soob['result']['message_id']

/*Редактируем изображение*/
media='{"type": "photo", "media": "AgACAgIAAxkBAAIPrmO4UiH7Tazqn-3IbFVzPKNsVEZmAAJ1wDEb5fHASWcNXKah-egvAQADAgADeQADLQQ"}'
tg_edit_message_media(platform_id, soob_id, media)
/*Редактируем описание изображения*/
tg_edit_message_caption(platform_id, soob_id, 'Это Я!')
```

</details>

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

<details>

<summary>Пример</summary>

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

<div data-with-frame="true"><figure><img src="/files/9cf5792a03c6a593d607a52c7014c831a5bdf581" alt="" width="563"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/b2d1173dd9f40cc36dcdfcc3e2faf56d898cc538" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Пример кода для копирования</summary>

```
/*Удобно заранее определить параметры в переменной.*/
text='Какой пакет вы хотите выбрать?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функция отправки сообщения*/
soob=tg_send_message(platform_id, text, None, opts)
/*Сохраняем ID отправленного сообщения*/
soob_id=soob['result']['message_id']


/*Копируем отправленное сообщение*/
tg_copy_message('5081438490', '1840834360', soob_id, None, opts, None, None, 1)
```

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/chatbot/messendzhery/telegram/api/messages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
