# Функції для надсилання та редагування повідомлень

## **Як надсилати повідомлення за допомогою облікового запису 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:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>Ідентифікатор користувача Telegram, якому слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> text</strong></td><td>Текст повідомлення</td></tr><tr><td><strong>client_message_id</strong> </td><td>Ідентифікатор повідомлення, яке потрібно процитувати</td></tr><tr><td><strong>reply_markup</strong></td><td>Налаштування кнопки  <a href="/pages/222cd7836b937813623ef105e74eb68ac03d9106#how-to-delete-reply-buttons"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td>Форматування тексту: жирний та курсив у описі<a href="/pages/f59a5c396bda761dc7db119cd8801d1176d03bf2#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:orange;"><strong>Детальний приклад</strong></mark></summary>

Розгляньмо простий приклад із набором обов’язкових параметрів:

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

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

Дивіться той самий приклад, але з використанням змінних:

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

У цьому прикладі змінна `soob` міститиме відповідь сервера після надсилання повідомлення.

<div data-with-frame="true"><figure><img src="/files/eeca2792cfacf92e22f57a18a2fb6f71e1220f3b" 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:green;">>Ми відповімо в тому самому чаті, де пише клієнт</mark>

  **text** - текст повідомлення. \ <mark style="color:green;">>Ми використовуємо форматування тексту — наприклад, виділення жирним.</mark>

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

<div data-with-frame="true"><figure><img src="/files/0a06765b8c421761063b7f59344fc911e3cd4dbf" 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:red;">**`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:red;"><strong>!</strong></mark><strong> token</strong></td><td>Токен бота Telegram, отриманий від BotFather</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>Ідентифікатор користувача Telegram, якому слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> text</strong></td><td>Текст повідомлення</td></tr><tr><td><strong>client_message_id</strong></td><td>Ідентифікатор повідомлення, яке потрібно процитувати</td></tr><tr><td><strong>reply_markup</strong></td><td>Налаштування кнопки  <a href="/pages/222cd7836b937813623ef105e74eb68ac03d9106#how-to-delete-reply-buttons"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td>Форматування тексту: жирний та курсив у описі <a href="/pages/f59a5c396bda761dc7db119cd8801d1176d03bf2"><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:red;">**`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:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>Ідентифікатор користувача Telegram, якому слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_id</strong></td><td>Ідентифікатор повідомлення, яке потрібно відредагувати. Цей ID слід заздалегідь зберегти під час надсилання повідомлення.</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> text</strong></td><td>Текст повідомлення</td></tr><tr><td><strong>reply_markup</strong></td><td>Налаштування кнопки  <a href="/pages/222cd7836b937813623ef105e74eb68ac03d9106#how-to-delete-reply-buttons"><strong>**</strong></a></td></tr><tr><td><strong>parse_mode</strong></td><td>Форматування тексту: жирний та курсив у описі <a href="/pages/f59a5c396bda761dc7db119cd8801d1176d03bf2"><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:red;"><strong>!</strong></mark> platform_id</td><td>ID чату Telegram</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> message_id</td><td>Ідентифікатор повідомлення</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> reaction</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/45db86120cb8d8867032c40b181d625b9f440f4c" 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:red;"><strong>!</strong></mark> platform_id</td><td>Ідентифікатор користувача Telegram, якому слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> message_id</td><td>Ідентифікатор повідомлення, яке потрібно відредагувати</td></tr><tr><td><mark style="color:red;"><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/f59a5c396bda761dc7db119cd8801d1176d03bf2"> <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:red;"><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:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>Ідентифікатор користувача Telegram, якому слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_id</strong></td><td>Ідентифікатор повідомлення, яке потрібно відредагувати. Цей ID слід заздалегідь зберегти під час надсилання повідомлення. </td></tr><tr><td><mark style="color:red;"><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/d9135def721ec2aa23a2ad6eb899503b39e3a6c8">вебхук Telegram</a>. </p><p></p><p>Для отримання додаткових відомостей параметри для словника описані в офіційній <a href="/pages/416fc89aa1ac8e09480fc18b9e0a8d971625188b">документації 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>

## **Як редагувати вбудовану клавіатуру в повідомленні**

<table><thead><tr><th width="270.03125">Параметр</th><th>Опис</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>Ідентифікатор користувача Telegram, якому слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_id</strong></td><td>Ідентифікатор повідомлення, яке потрібно відредагувати. Цей ID слід заздалегідь зберегти під час надсилання повідомлення. </td></tr><tr><td><mark style="color:red;"><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" %}
Ви можете редагувати лише вбудовану клавіатуру.
{% 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:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>Ідентифікатор користувача Telegram, якому слід скопіювати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> from_chat_id</strong> </td><td>Ідентифікатор користувача Telegram, З ЯКОГО слід скопіювати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_id</strong></td><td>Ідентифікатор повідомлення, яке потрібно скопіювати</td></tr><tr><td><strong>reply_to_message_id</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><p>Форматування тексту: жирний та курсив у описі <a href="/pages/f59a5c396bda761dc7db119cd8801d1176d03bf2"><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:red;"><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:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>Ідентифікатор користувача Telegram, якому слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> from_chat_id</strong></td><td>Ідентифікатор користувача Telegram, ВІД ЯКОГО слід надіслати повідомлення <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_id</strong></td><td>Ідентифікатор повідомлення для пересилання</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:red;">**!**</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:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>Ідентифікатор користувача Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_id</strong></td><td>Ідентифікатор повідомлення, яке потрібно видалити</td></tr></tbody></table>

## **Як видалити кілька повідомлень**

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

<mark style="color:red;">**!**</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:red;"><strong>!</strong></mark> platform_id</td><td>Ідентифікатор користувача Telegram </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark> message_ids</td><td>Масив ідентифікаторів повідомлень, які потрібно видалити. Максимум 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>

Отже, надішлемо собі повідомлення з вбудованою клавіатурою:

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

Далі відредагуємо текст повідомлення:

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

І відредагуємо кнопки:

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

Спробуймо відредагувати повідомлення із зображенням. Для цього надішліть повідомлення із зображенням і збережіть ID надісланого повідомлення. Прочитайте детальні інструкції про те, як отримати URL зображення [тут](/doc/uk/chatbot/mesendzheri/telegram/api/messages.md):&#x20;

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

Тепер відредагуймо зображення та його опис:

<div data-with-frame="true"><figure><img src="/files/fafb4c3fefff23650cd76e7cb83b3d9d00933637" 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)  

/*Редагувати вбудовану клавіатуру*/
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/d26d3a1eee9bc94780704d78be38e8f15a404dee" alt="" width="563"><figcaption></figcaption></figure></div>

А тепер скопіюймо попередньо надіслане повідомлення.

<div data-with-frame="true"><figure><img src="/files/c66783ce458f44fbf0717e10786e0e996a7e9fb7" 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/uk/chatbot/mesendzheri/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.
