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

## Як надсилати документи

<details>

<summary>Надіслати документ tg_send_document() </summary>

<mark style="color:red;">**!**</mark> Ці функції дають змогу надсилати файли будь-якого типу. Рекомендовані формати: **GIF, PDF, ZIP** до **2 ГБ**.

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>&#x20;

**tg\_send\_document(platform\_id, document, caption, reply\_markup, parse\_mode,reply\_to\_message\_id, protect\_content, disable\_notification**, **message\_thread\_id, entities)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта в Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii) &#x20;

<mark style="color:red;">**!**</mark>**&#x20;document** - посилання на документ на сервері Telegram. Отримання посилання через tg\_request пояснюється [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md).&#x20;

**caption** - опис, до 1024 символів

**reply\_markup** — налаштування кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)&#x20;

**parse\_mode** — форматування тексту в підписі (жирний або курсив)  [ **\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)**.** Можливі значення: html, markdown, markdownV2. посилання

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''.

**disable\_notification** —  прапорець для керування звуковими сповіщеннями (за замовчуванням: 0).\
1 - надіслати без сповіщення, 0 - надіслати зі сповіщенням

**message\_thread\_id** —  ідентифікатор гілки (доступний у супергрупах із функцією форуму)\
\
**entities** — дає змогу повторно використовувати попередньо відформатований текст зі стилями. Просто визначте зміщення символу та діапазон для форматування. Приклад доступний у tg\_request у відповідному полі. Потрібно передати словник.\
\
Приклад передачі параметра: \
`entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]`  \
\
У цьому прикладі показано лише словник, тоді як сам текст повідомлення визначено в окремій змінній.

Щоб спростити опис набору кнопок, можна використати таку [хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button).&#x20;

</details>

<details>

<summary>Надіслати кілька документів або інших файлів tg_send_some_document()</summary>

<mark style="color:red;">**!**</mark> Ці функції дають змогу надсилати файли будь-якого типу. Рекомендовані формати: **GIF, PDF, ZIP** до **2 ГБ**.

**tg\_send\_some\_document(platform\_id, document\_list, disable\_notification, protect\_content, reply\_to\_message\_id, message\_thread\_id)**

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта в Telegram, якому потрібно надіслати повідомлення  [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)&#x20;

<mark style="color:red;">**!**</mark>**&#x20;document\_list** - масив документів. Приклад побудови такого масиву наведено нижче

**disable\_notification** —   прапорець для керування звуковими сповіщеннями (за замовчуванням: 0).\
1 - надіслати без сповіщення, 0 - надіслати зі сповіщенням

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''.

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**message\_thread\_id** —  ідентифікатор гілки (доступний у супергрупах із функцією форуму)

**Приклад побудови масиву document\_list:**\
'\[\["Посилання на документ", "caption", "parse\_mode"], \["Посилання на документ 2"], \["Посилання на документ 3", "caption"]]'&#x20;

**Приклад форматування даних для одного документа** \
\["Посилання на документ", "caption", "parse\_mode"]&#x20;

<mark style="color:red;">**Порядок параметрів важливий!**</mark> Під час створення масиву документів лапки " " можна не вказувати.

**Опис параметрів для масиву document\_list:**\ <mark style="color:red;">**!**</mark>**&#x20;Посилання на документ** - посилання на документ із сервера Telegram. Отримання посилання через tg\_request пояснюється [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md)   \
**caption** — опис до 1024 символів\
**parse\_mode** — форматування опису, тобто виділення тексту жирним або курсивом  [**\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)

</details>

<details>

<summary>Приклад</summary>

Розгляньмо приклад надсилання одного документа, додавання inline-кнопок і опису до документа:

1. Спочатку отримайте посилання на свій документ. Детальне пояснення того, як це зробити, можна [знайти тут.](/doc/uk/chatbot/mesendzheri/telegram/webhook.md#how-to-get-a-media-link-using-a-variable)
2. Створіть блок і встановіть змінні, як показано на скріншоті:<br>

   <div data-with-frame="true"><figure><img src="/files/f55c5e927e6ddf167567aa8ee89f6b0bf0d1569f" alt="" width="563"><figcaption></figcaption></figure></div>
3. Надішліть блок собі та подивіться на результат нашої роботи:

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

Тепер розгляньмо надсилання кількох документів.

1. Тут також потрібно отримати внутрішнє посилання Telegram для кожного документа і сформувати масив.\
   lnkdoc='\[\["BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ", "Document1"],\["BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ", "Document2"]]'
2. Нарешті, зберіть функцію для надсилання документів:

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

3\. І перевірте результат роботи:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання</mark>

Приклад коду для надсилання одного документа:

```
lnkdoc= "BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ"
opts = {"inline_keyboard": [[{"text": "Відмінно","callback_data":"Answer1"}, {"text": "Не прийнято","callback_data":"Answer2"}]]}
soob=tg_send_document(platform_id, lnkdoc, "Надсилання документа", opts) 
```

Приклад коду для надсилання кількох документів:

```
lnkdoc='[["BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ", "Document1"],["BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ", "Document2"]]'
soob=tg_send_some_document(platform_id, lnkdoc)
```

</details>

## Як надсилати аудіо / голосове аудіо

<details>

<summary>Надіслати аудіоповідомлення <strong>tg_send_voice(</strong>)</summary>

<mark style="color:red;">!</mark> Ця функція дає змогу надсилати голосові файли типу .OGG, закодовані OPUS, розміром до 2 ГБ.

<mark style="color:за замовчуванням;background-color:green;">**! Працює лише з бізнес-акаунтом Telegram**</mark>

**tg\_send\_voice(platform\_id, voice, caption, reply\_markup, parse\_mode, reply\_to\_message\_id, protect\_content, disable\_notification, message\_thread\_id, entities)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта в Telegram, якому слід надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;voice** - посилання на голосове повідомлення у форматі .OGG

**caption** - опис до 1024 символів

**reply\_markup** — налаштування кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** — форматування тексту в описі жирним або курсивом [ **\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)**.** Можливі значення:  html, markdown, markdownV2.

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''.

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням 0)   1 - вимкнути сповіщення під час отримання, 0 - надіслати зі сповіщенням

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах, якщо ввімкнено функцію форуму).\
\
**entities** —за допомогою цього параметра ви можете просто копіювати відформатований текст з усіма його можливостями та вказати, з якого символу до якого він відображатиметься в певному стилі. Приклад можна перевірити в tg\_request у відповідному полі. Параметр має бути словником. \
\
Приклад передачі параметра: \
`entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]`  \
\
У прикладі показано лише словник, тоді як сам текст повідомлення визначено у змінній.

Щоб спростити опис набору кнопок, можна використати таку [хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Надіслати кілька аудіоповідомлень <strong>tg_send_some_audio()</strong></summary>

<mark style="color:red;">**!**</mark> Ця функція дає змогу надсилати аудіофайли типу .MP3 або .M4A максимальною розміром 2 ГБ.

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>&#x20;

**tg\_send\_some\_audio(platform\_id, audio\_list, disable\_notification, protect\_content, reply\_to\_message\_id, message\_thread\_id)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта в Telegram, якому слід надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;audio\_list** - масив аудіофайлів (деталі нижче)

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням або без нього (за замовчуванням: 0).                                                                                                                   1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''.

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)

**Приклад побудови масиву audio\_list:** \
'\[\["Посилання на аудіо 1", "caption", "parse\_mode"], \["Посилання на аудіо 2"], \["Посилання на аудіо 3", "caption"]]'&#x20;

**Приклад одного аудіо:** \
\["Посилання на аудіо", "caption", "parse\_mode"]&#x20;

<mark style="color:red;">**Порядок параметрів важливий!**</mark> Під час побудови масиву аудіофайлів лапки "" можна не вказувати

**Опис параметрів:** \ <mark style="color:red;">**!**</mark>**&#x20;Посилання на аудіо** - посилання на аудіофайл у форматі .OGG\
**caption** — опис (до 1024 символів) \
**parse\_mode** — форматування тексту в підписі жирним або курсивом   [**\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)

</details>

<details>

<summary>Приклад</summary>

Як зазначено вище, функція працює з файлами .OGG. Тому перше завдання — отримати аудіозапис у цьому форматі. \
Якщо у вас є **.**&#x444;айл MP3, ви можете конвертувати його в **.**&#x4F;GG за допомогою <https://t.me/mp3toolsbot> бота.&#x20;

Далі надішліть отриманий файл собі в бот, щоб отримати file\_id за алгоритмом [описаним тут. ](#documents-an-example-of-how-to-send-using-the-telegram-api)

Тепер зберімо функцію:

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

Чудово! Молодець!

</details>

<details>

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

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання</mark>

```
tg_send_voice(platform_id, "CQACAgIAAxkBAAER70Bi8VkgNhegB-msqDWXm2qHi3n9-AAC-iAAAk6giUvIXkW-XzBN0ikE")
```

</details>

<details>

<summary>Помилка під час надсилання голосових повідомлень</summary>

Якщо повідомлення не вдалося надіслати через налаштування конфіденційності, повертається така помилка:

<mark style="color:red;">{"ok":false,"error\_code":400,"description":"Bad Request: user restricted receiving of voice messages"}</mark>

Причина помилки: у налаштуваннях конфіденційності користувача є опція «Не отримувати голосові повідомлення» (або від усіх, або лише від певних користувачів):

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

Навіть якщо користувач вимкне це обмеження конфіденційності, помилка все одно буде з’являтися.

Насправді допомагає лише повне видалення клієнта з бази даних Mavibot, навіть попри те, що користувач уже увімкнув дозволи.

<mark style="color:green;">**Рішення:**</mark>&#x20;

Після того як користувач змінить налаштування конфіденційності, потрібно зачекати паузу 30–60 секунд (доки сервери месенджера оброблять зміни), і лише потім надсилати API-запит до Telegram через бота:\ <mark style="color:green;">**<https://api.telegram.org/bot\\><TOKEN>/getChat?chat\_id=#{platform\_id}**</mark>

Після цього дані користувача буде оновлено, і голосові повідомлення надсилатимуться коректно.

</details>

## Як надсилати анімації

<details>

<summary>Надіслати анімацію <strong>tg_send_animation()</strong></summary>

<mark style="color:red;">**!**</mark> Ця функція дає змогу надсилати GIF або відео H.264/MPEG-4 AVC без звуку розміром до 2 ГБ.

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>

**tg\_send\_animation(platform\_id, animation, caption, reply\_markup, parse\_mode, reply\_to\_message\_id, protect\_content, has\_spoiler, disable\_notification, message\_thread\_id, entities, show\_caption\_above\_media)**

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення. [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;animation**- посилання на анімацію. Як отримати посилання через tg\_request пояснюється [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md)&#x20;

**caption** - опис до 1024 символів

**reply\_markup** — налаштування кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** — форматування тексту в підписі жирним або курсивом  [**\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)**.** Можливі значення: html, markdown, markdownV2

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''.

**has\_spoiler** — вмикає спойлер. Щоб увімкнути, встановіть True.

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням або без нього (за замовчуванням: 0).  1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)\
\
**entities** — за допомогою цього параметра ви можете просто копіювати відформатований текст з усіма його можливостями та вказати, з якого символу до якого він відображатиметься в певному стилі. Приклад можна перевірити в tg\_request у відповідному полі. Параметр має бути словником.&#x20;

**show\_caption\_above\_media** - якщо встановити True, підпис до повідомлення буде відображатися над медіа\
\
Приклад передачі параметра:\
`entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]`  \
\
У цьому прикладі показано лише словник, тоді як сам текст повідомлення зберігається у змінній

Щоб спростити описи наборів кнопок, можна використати таку [хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Приклад</summary>

Ускладнімо завдання та надішлемо анімацію з копіюванням і захистом спойлером.

Як завжди, процес починається з отримання внутрішнього посилання Telegram для вибраної анімації (деталі [тут](/doc/uk/chatbot/mesendzheri/telegram.md)).

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

Нарешті, зберіть функцію:

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

І перевірте результат роботи:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання</mark>

```
animation="CgACAgIAAxkBAAIQDWO9Dbb0QODBmI_CUMhKHoWch7MDAAJBIQACtjXoScUjA-n5kGCYLQQ"
caption = "Щасливого Нового року!"
soob=tg_send_animation(platform_id, animation, caption, None, None, None, True,True)
```

</details>

## Як надсилати відео

<details>

<summary>Надіслати відео через API Telegram <strong>tg_send_video()</strong></summary>

<mark style="color:red;">**!**</mark> Ця функція дає змогу надсилати файли MPEG4 розміром до 2 ГБ. \
(Інші формати можна надсилати як файли за допомогою tg\_send\_document())

<mark style="color:за замовчуванням;background-color:green;">**! Робота з Telegram business-account**</mark>&#x20;

**tg\_send\_video(platform\_id, video, caption, reply\_markup, parse\_mode, reply\_to\_message\_id, protect\_content, has\_spoiler, disable\_notification, message\_thread\_id, entities,** show\_caption\_above\_media, cover **)**

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;video** - посилання на відео. Як отримати посилання через tg\_request див. [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md)&#x20;

**caption** - опис до 1024 символів

**reply\_markup** — налаштування кнопок  [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** — форматування тексту в підписі жирним або курсивом  [**\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)**.** Можливі значення: html, markdown, markdownV2.

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''.

**has\_spoiler** — вмикає спойлер. Щоб увімкнути, встановіть True

**disable\_notification** — прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)\
\
**entities** — за допомогою цього параметра ви можете просто копіювати відформатований текст з усіма його можливостями та вказати, з якого символу до якого він відображатиметься в певному стилі. Приклад можна перевірити в tg\_request у відповідному полі. Параметр має бути словником.&#x20;

**show\_caption\_above\_media** - якщо встановити True, текст повідомлення відображатиметься над медіа.

cover - зображення обкладинки відео в повідомленні. Отримання URL через tg\_request [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md). \
\
Приклад передачі параметра:\
`entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]`  \
\
У цьому прикладі показано лише словник, тоді як сам текст повідомлення зберігається у змінній

Щоб спростити описи наборів кнопок, можна використати таку[ хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Надіслати кілька відео через API Telegram <strong>tg_send_some_video()</strong></summary>

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>&#x20;

**tg\_send\_some\_video(platform\_id, video\_list, disable\_notification, protect\_content, reply\_to\_message\_id, has\_spoiler, message\_thread\_id)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;video\_list** - масив відеофайлів (деталі нижче)&#x20;

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**has\_spoiler** — вмикає форматування спойлера (необов’язково; для активації встановіть True)

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)

**Приклад створення масиву відео video\_list:** \
'\[\["Посилання на відео1", "caption", "parse\_mode"], \["Посилання на відео2"], \["Посилання на відео3", "caption"]]'

**Приклад створення одного аудіо:** \
\["Посилання на відео", "caption", "parse\_mode"]&#x20;

<mark style="color:red;">**Порядок параметрів важливий!**</mark> Під час побудови масиву відеофайлів лапки "" можна не вказувати

**Опис параметрів:** \ <mark style="color:red;">**!**</mark>**&#x20;Посилання на відео** — внутрішня URL-адреса відео Telegram. Отримання посилання через tg\_request описано [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md#how-to-get-webhook).\
**caption** — текстовий підпис до 1024 символів\
**parse\_mode** — форматування тексту в підписі жирним або курсивом  [**\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)**.** Можливі значення:  html, markdown, markdownV2.

</details>

<details>

<summary>Приклад</summary>

Отже, спочатку отримаймо посилання на файл, який хочемо надіслати, а потім заповнімо потрібні параметри функції:

<div data-with-frame="true"><figure><img src="/files/069b837ba262a28931ce44aa6d5b7f64ebea27b0" alt="" width="563"><figcaption><p>Отримання посилання на відео через tg_request</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/aad31485c862749c6a0ae5c24eb7d440f14ba86e" alt="" width="563"><figcaption><p>Надсилання параметра відео</p></figcaption></figure></div>

Після перевірки отримуємо відео:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання</mark>

```
video="BAACAgIAAxkBAAIQFmO9Ycbt5JDIr9HKQh-XkhS9FqTxAALQIwACtjXoSXKlqfbH-I_gLQQ"
soob=tg_send_video(platform_id, video
```

</details>

## Як надсилати кругле відео

<details>

<summary>Надіслати кругле відео <strong>tg_send_video_note()</strong></summary>

<mark style="color:red;">**!**</mark> Починаючи з версії 4.0, Telegram підтримує надсилання круглих відео MPEG4 тривалістю до однієї хвилини.

<mark style="color:за замовчуванням;background-color:green;">**! Робота з Telegram business-account**</mark>

**tg\_send\_video\_note(platform\_id, video\_note,  reply\_markup, protect\_content, reply\_to\_message\_id, disable\_notification,  message\_thread\_id)** &#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;video\_note** - посилання на відео. Як отримати посилання через tg\_request описано [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md) \
**reply\_markup** — налаштування кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**message\_thread\_id** —   ідентифікатор теми (доступний у супергрупах із функціоналом форуму)

Щоб спростити описи наборів кнопок, можна використати таку [хитрість ](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)

</details>

<details>

<summary>Приклад</summary>

Якщо у вас є квадратне відео, ви можете перетворити його на кругле за допомогою <https://t.me/roundNoteBot> бота:&#x20;

<figure><img src="/files/2ace1e8f10bac554bfdd930e110f47d293643565" alt=""><figcaption><p>Отримання бота для кругового відео через @roundNoteBot (https://t.me/roundNoteBot)</p></figcaption></figure>

Після того як у вас буде кругле відео, надішліть його собі в боті, щоб отримати посилання (деталі [тут](/doc/uk/chatbot/mesendzheri/telegram/api/attachment.md)), а потім налаштуйте функцію для надсилання круглого відео:

<figure><img src="/files/1fec2dc01d48a7604d83e05e5c6326740a5b141e" alt="" width="563"><figcaption></figcaption></figure>

</details>

<details>

<summary>Приклад коду для копіювання</summary>

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання</mark>

```
tg_send_video_note(platform_id, 'DQACAgIAAxkBAAER6cVi6OzIezJo9FWu6WyZPzDgQX8B3QACcxsAArR3SUtRizDeiHWLNikE','','1')

```

</details>

## Як надсилати місцезнаходження

<details>

<summary>Надіслати геолокацію <strong>tg_send_venue()</strong></summary>

<mark style="color:за замовчуванням;background-color:green;">**! Робота з Telegram business-account**</mark>&#x20;

**tg\_send\_venue(platform\_id, latitude, longitude, title, address, protect\_content, disable\_notification, reply\_to\_message\_id, reply\_markup, message\_thread\_id)**&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;широта** —latitude

<mark style="color:red;">**!**</mark>**&#x20;довгота** — довгота

<mark style="color:red;">**!**</mark>**&#x20;title** — назва

<mark style="color:red;">**!**</mark>**&#x20;address** — адреса

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**reply\_markup** — налаштування кнопок  [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)

Щоб спростити описи наборів кнопок, можна використати таку[ хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Приклад</summary>

Отже, спочатку визначмо координати місця. Їх можна отримати за допомогою  [Google Maps ](https://www.google.com/maps)

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

Далі перетворіть отримані координати з десяткових градусів у географічний формат за допомогою будь-якого онлайн [конвертера координат](https://coordinates-converter.com/en/decimal/51.000000,10.000000?karte=OpenStreetMap\&zoom=8):

<figure><img src="/files/2b2fdeea85a996af29fa3f867530355238a07126" alt="" width="375"><figcaption></figcaption></figure>

Тепер перейдемо до заповнення параметрів функції та отримання потрібного результату:

<div data-with-frame="true"><figure><img src="/files/8c3472ef401f4a6a46f89a9945978adacdf37ca0" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/3cd0e2a606f393f667584bcadee42a9f80d09f33" alt="" width="375"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
soob=tg_send_venue(platform_id, "48°52′", "2°4′", "Мрії збуваються!", "Париж, Ейфелева вежа") 
```

</details>

## Як надсилати контакти

<details>

<summary>Надіслати контакт <strong>tg_send_contact()</strong></summary>

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>

Telegram пропонує швидкий спосіб ділитися контактами з вашої адресної книги. Месенджер підтримує надсилання **vCard** — електронної візитної картки

Функція tg\_send\_contact дає змогу надсилати номер телефону з ім’ям (або назвою організації), а також додавати кнопки й вмикати захист вмісту для повідомлення.

**tg\_send\_contact(platform\_id, phone, first\_name, last\_name, protect\_content, disable\_notification, reply\_to\_message\_id, reply\_markup, message\_thread\_id)**&#x20;

<mark style="color:red;">**! - обов’язковий параметр функції**</mark>

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;phone** — номер телефону в міжнародному форматі. Наприклад, для Росії: +7XXXXXXXXXX

<mark style="color:red;">**!**</mark>**&#x20;ім’я** та **прізвище** - ім’я та прізвище&#x20;

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''

**disable\_notification** — прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**reply\_markup** — налаштування кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)

Щоб спростити описи наборів кнопок, можна використати таку [хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Приклад</summary>

Заповніть параметри: номер телефону, ім’я та прізвище.

<div data-with-frame="true"><figure><img src="/files/352dd70ea2dd21f85528793415114b78bc46e11f" alt="" width="563"><figcaption><p>Приклад заповнення параметрів для функції надсилання контакту.</p></figcaption></figure></div>

Подивіться на результат:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

```
soob=tg_send_contact(platform_id, "+79999999999", "Ann", "Test", 1) 
```

</details>

## Як надсилати стікер

<details>

<summary>Надіслати стікер <strong>tg_send_sticker()</strong></summary>

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>

**tg\_send\_sticker(platform\_id, sticker\_id, protect\_content,  disable\_notification, reply\_to\_message\_id, reply\_markup, message\_thread\_id)**&#x20;

Параметри:&#x20;

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;sticker\_id** - ID стікера. Як отримати посилання через tg\_request пояснюється [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md)&#x20;

**protect\_content** —  прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''

**disable\_notification** —   прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**reply\_markup** — налаштування кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)

Щоб спростити описи наборів кнопок, можна використати таку [хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Приклад</summary>

Надсилання стікера нічим не відрізняється від надсилання будь-якого іншого вкладення:\
1\. Отримайте внутрішнє посилання Telegram (деталі тут) \
2\. Заповніть параметри функції\
3\. Надішліть блок собі та перевірте результат

<div data-with-frame="true"><figure><img src="/files/f858351202e8e02bba0bb41dc10b224b78f68f0a" alt="" width="563"><figcaption><p>Надсилання стікера</p></figcaption></figure></div>

Результат:

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання</mark>

```
soob=tg_send_sticker(platform_id, 'CAACAgIAAxkBAAEawJ5jmNeyat8uPGBMP3JzubRNXGjH3wACrw4AAsYg4UqePobN94_jkywE')
```

</details>

## Як надсилати фото

{% hint style="warning" %}

#### **Розуміння `caption` параметра**

Поле **`caption`** параметр надає описовий текст для зображення (наприклад, короткий підсумок або пояснення). Він працює так:

* **Для одного зображення:** якщо додано підпис, повідомлення міститиме і зображення, і описовий текст.
* **Для кількох зображень:** кожне зображення може мати власний окремий підпис. У такому разі кожне зображення буде надіслано разом зі своїм описом.

**Досвід користувача:** текст підпису зазвичай відображається, коли користувач натискає або торкається зображення.

> **Для детальних технічних специфікацій і поведінки API, будь ласка, зверніться до офіційної документації Telegram.**

**Примітка:** якщо ви дивитеся відеоурок, уважно перегляньте кроки, оскільки налаштування та інтерфейси можуть змінюватися з часом.
{% endhint %}

<details>

<summary>Надіслати фото <strong>tg_send_photo()</strong></summary>

<mark style="color:red;">**!**</mark> Фотографія має бути не більшою за 10 МБ. Загальна ширина й висота не повинні перевищувати 10 000 пікселів. Співвідношення ширини до висоти не повинно перевищувати 20.

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>

**tg\_send\_photo(platform\_id, photo, caption, reply\_markup, parse\_mode, reply\_to\_message\_id, protect\_content, has\_spoiler, disable\_notification, message\_thread\_id, entities, show\_caption\_above\_media)**

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** —  ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;фото** - посилання на зображення. Як отримати посилання через tg\_request пояснюється [тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md).&#x20;

**caption** - опис до 1024 символів

**reply\_markup** — налаштування кнопок  [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** — форматування тексту в підписі жирним або курсивом  [**\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)

**reply\_to\_message\_id -** ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''

**has\_spoiler** — вмикає форматування спойлера, встановіть True для активації

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)\
\
**entities** — за допомогою цього параметра ви можете просто копіювати відформатований текст з усіма його можливостями та вказати, з якого символу до якого він відображатиметься в певному стилі. Приклад можна перевірити в tg\_request у відповідному полі. Параметр має бути словником.

show\_caption\_above\_media - якщо встановлено True, текст повідомлення відображатиметься над медіа\
\
Приклад надсилання параметра: \
`entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]`  \
\
У цьому прикладі показано лише словник, тоді як сам текст повідомлення зберігається у змінній

Щоб спростити описи наборів кнопок, можна використати таку [хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Надіслати кілька фото <strong>tg_send_some_photo()</strong></summary>

<mark style="color:red;">**!**</mark> Фотографія має бути не більшою за 10 МБ. Загальна ширина й висота не повинні перевищувати 10 000 пікселів. Співвідношення ширини до висоти не повинно перевищувати 20.

<mark style="color:за замовчуванням;background-color:green;">**! Робота з Telegram business-account**</mark>&#x20;

**tg\_send\_some\_photo(platform\_id, image\_list, disable\_notification=0**, **protect\_content=False, reply\_to\_message\_id=0, has\_spoiler=False,message\_thread\_id)**

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:red;">**!**</mark>**&#x20;image\_list** - масив файлів зображень (деталі нижче)&#x20;

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**protect\_content** — прапорець для захисту вмісту від копіювання (необов’язковий параметр, для ввімкнення передайте значення 1)

**reply\_to\_message\_id -**  ID повідомлення, на яке потрібно відповісти (тобто процитувати)

**has\_spoiler** — вмикає форматування спойлера (необов’язково; для активації встановіть True)

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)<br>

**Приклад image\_list:**

`'[["Посилання на зображення 1", "caption", "parse_mode"], ["Посилання на зображення 2"], ["Посилання на зображення 3", "caption"]]'`

**Приклад даних для одного зображення:** \
\["Посилання на зображення 1", "caption", "parse\_mode"]&#x20;

<mark style="color:red;">**Порядок параметрів важливий!**</mark> Під час побудови масиву файлів зображень лапки "" можна не вказувати

**Опис параметрів:&#x20;**&#x20;

<mark style="color:red;">**!**</mark>**&#x20;Посилання на зображення 1** - посилання на зображення. Як отримати посилання через tg\_request пояснюється[ тут](/doc/uk/chatbot/mesendzheri/telegram/webhook.md) &#x20;

**caption** — підпис до 1024 символів

**parse\_mode** — форматування тексту в підписі жирним або курсивом [**\*\*\***](/doc/uk/chatbot/builder/telegram_messages.md)

</details>

<details>

<summary>Приклад</summary>

Розгляньмо приклад функції для надсилання кількох зображень:

спочатку створіть масив зображень

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

Далі заповніть параметри функції

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

Надішліть блок собі та насолоджуйтеся результатом

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання для відео</mark>

```
image_list='[["https://faktoria-print.ru/wp-content/uploads/2022/07/syre-dlya-bumagi.jpg"], ["https://www.solbum.ru/upload/medialibrary/2d1/2d18bd473d50fe9c2fe6a1eb401b4fe3.JPG"], ["https://www.solbum.ru/upload/medialibrary/bb7/bb786b67b57d9ab44ef5f7b8400810bb.jpg"], ["https://obumage.net/wp-content/uploads/2017/05/tual_bumaga.jpg"]]'
soob=tg_send_some_photo(platform_id, image_list)
```

</details>

## Як надсилати кубик

<details>

<summary>Надіслати емодзі з випадковим вибором (Dice) <strong>tg_send_dice()</strong> </summary>

**tg\_send\_dice(platform\_id, emoji, reply\_markup, disable\_notification, reply\_to\_message\_id, protect\_content, message\_thread\_id)**

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>&#x20;

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

**emoji** - емодзі, яке потрібно надіслати. Якщо параметр залишити порожнім, за замовчуванням буде надіслано кубик. Ви можете передати або саме емодзі як рядок, або ключове слово, яке його позначає

**reply\_markup** — налаштування кнопок  [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**disable\_notification** —  прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

**reply\_to\_message\_id -**&#x49;D повідомлення, на яке потрібно відповісти (тобто процитувати)

**protect\_content** — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''

**message\_thread\_id** —  ідентифікатор теми (доступний у супергрупах із функціоналом форуму)

Щоб спростити описи наборів кнопок, можна використати таку [хитрість](/doc/uk/chatbot/mesendzheri/telegram/buttons.md#telegram-web-application-button)&#x20;

&#x20;

**Можливий список емодзі:** \
1\) 'darts' або '🎯', значення від 1 до 6 \
2\) 'dice' або '🎲', значення від 1 до 6 \
3\) 'bowling' або '🎳', значення від 1 до 6 \
4\) 'basketball' або '🏀', значення від 1 до 5  \
5\) 'football' або '⚽', значення від 1 до 5 \
6\) 'slots' або '🎰', значення від 1 до 64&#x20;

\
Крім того, якщо клієнт надішле боту одне з цих емодзі, ви отримаєте callback із інформацією про рахунок і про те, яке саме емодзі було використано.

</details>

<details>

<summary>Приклад</summary>

Найпростіший варіант — викликати функцію лише з одним обов’язковим параметром:

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

У цьому випадку клієнт отримає кубик:

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

Якщо клієнт кине кубик (натиснувши на отримане емодзі), бот отримає callback із кількістю випалих очок:

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

Ви можете експериментувати з цією функцією. Наприклад, створімо слот-машину та додамо **Очки** кнопку. Коли кнопку буде натиснуто, ми отримаємо загальну кількість очок клієнта:

<div data-with-frame="true"><figure><img src="/files/2c8cacd5ad6b80eb23bd49e6224876da5c1e76a3" alt="" width="563"><figcaption><p><strong>Перше повідомлення:</strong> Запропонувати зіграти</p></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/1a736422d80ccfa4f0aadee9a130279a56051793" alt="" width="563"><figcaption><p>Приклад бота</p></figcaption></figure></div>

</details>

<details>

<summary>Приклад коду для копіювання</summary>

Перший приклад:

```
soob=tg_send_dice(platform_id)
```

Другий приклад:

<pre><code>/* Перший приклад */
<strong>tg_send_message(platform_id,'Натисніть на слот-машину, щоб спробувати удачу!')
</strong>opts='{"inline_keyboard": [[{"text": " 👓 ","callback_data":"Play"}]]}'
soob=tg_send_dice(platform_id, 'slots', opts)

/* Другий блок - текстове повідомлення */
<strong> #{res[1]} випало очок
</strong><strong>/* Другий блок - калькулятор */
</strong>res=splitter('#{question}', ' ')
balls=if(balls==None,0,balls) + int(res[1])

/* Третій блок - текстове повідомлення */
У вас загалом #{balls} очок
</code></pre>

</details>

## Як надіслати медіагрупу

<details>

<summary>Надіслати медіагрупу tg_send_media_group()</summary>

<mark style="color:за замовчуванням;background-color:green;">**! Працює з бізнес-акаунтом Telegram**</mark>

Метод для надсилання групи фотографій, відео, документів або аудіофайлів як альбому. У разі успіху повертається масив надісланих файлів.

<mark style="color:orange;">**Примітка: документи та аудіофайли не можна групувати з іншими типами файлів!**</mark>

tg\_send\_media\_group(platform\_id, media\_list, disable\_notification, protect\_content, reply\_to\_message\_id, message\_thread\_id)

Параметри:

<mark style="color:red;">!</mark> platform\_id — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення

<mark style="color:red;">!</mark> media\_list - масив, що містить від 2 до 10 фотографій, відео, документів або аудіофайлів (деталі нижче);

disable\_notification — прапорець для надсилання повідомлення зі звуковим сповіщенням (за замовчуванням: 0).   \
1 — надіслати без сповіщення, 0 — надіслати зі сповіщенням

protect\_content — прапорець для захисту вмісту від копіювання. Щоб увімкнути, передайте будь-яке значення, крім 0, False або порожніх лапок ''

reply\_to\_message\_id - ID повідомлення, на яке потрібно відповісти (тобто процитувати)

message\_thread\_id — ідентифікатор теми (доступний у супергрупах із функціоналом форуму);

**Вміст елементів масиву media\_list:**

<mark style="color:red;">!</mark> type - тип файлу, “photo”, “video”, “audio” або ”document”

<mark style="color:red;">!</mark> media - файл для надсилання. Передайте file\_id, щоб надіслати файл, який уже існує на серверах Telegram (рекомендовано), HTTP URL, звідки Telegram може завантажити файл з Інтернету, або «attach://\<file\_attach\_name>», щоб завантажити новий файл за допомогою multipart/form-data з іменем \<file\_attach\_name>.

Дізнатися більше: <https://core.telegram.org/bots/api#sending-files>

caption — назва файлу, що надсилається, 0–1024 символи.

parse\_mode — форматування тексту в підписі жирним або курсивом

Дізнатися більше: <https://core.telegram.org/bots/api#sending-files>

Приклад масиву media\_list:

\[{"type": "photo", "media": "AgACAgIAAxkBAAIKa2W6HqQG151EaWOKnCyy8feBi8p\_AAIH1zEbicvYSfi2QYj-CMreAQADAgADeAADNAQ", "caption": "відео привидів"}, {"type": "video", "media": "BAACAgIAAxkBAAIKpGW6P\_HGDoVz7u4blDF6925WO-hmAALVPQACicvYSYwIWCJKwKIWNAQ", “caption”: “відео з зайцем”}]

</details>

<details>

<summary>Приклад</summary>

Розгляньмо приклад функції для надсилання кількох зображень:

спочатку створіть масив зображень

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

Далі заповніть параметри функції

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

Надішліть блок собі та насолоджуйтеся результатом

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

</details>

<details>

<summary>Приклад коду для копіювання</summary>

<mark style="color:red;">Пам’ятайте, що посилання унікальні для кожного бота, тож переконайтеся, що ви згенерували власні посилання для відео</mark>

```
image_list='[["https://faktoria-print.ru/wp-content/uploads/2022/07/syre-dlya-bumagi.jpg"], ["https://www.solbum.ru/upload/medialibrary/2d1/2d18bd473d50fe9c2fe6a1eb401b4fe3.JPG"], ["https://www.solbum.ru/upload/medialibrary/bb7/bb786b67b57d9ab44ef5f7b8400810bb.jpg"], ["https://obumage.net/wp-content/uploads/2017/05/tual_bumaga.jpg"]]'
soob=tg_send_some_photo(platform_id, image_list)
```

</details>

## Як надсилати великі вкладення файлів

<details>

<summary>Приклад</summary>

У Telegram (як для бізнес-акаунтів, так і для звичайних акаунтів) ви можете надсилати вкладення за посиланням:

1. Ви можете надсилати вкладення будь-якого розміру, обходячи обмеження на розмір файлу.
2. Ви також можете надсилати будь-який тип вкладення, який вам потрібен.

Як це зробити:

Скопіюйте посилання на вкладення, яке вже є у відкритому доступі:

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

Потім вставте скопійоване посилання у функцію вкладення у вашому блоці:

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

Готово. Так ви можете надсилати вкладення будь-якого типу та розміру.

</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/attachment.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.
