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

## Как отправлять документы

<details>

<summary>Отправить документ  tg_send_document() </summary>

<mark style="color:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента в Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii) &#x20;

<mark style="color:красный;">**!**</mark>**&#x20;document** - ссылка на документ на сервере Telegram. О том, как получить ссылку через tg\_request, объясняется [здесь](/doc/ru/chatbot/messendzhery/telegram/webhook.md).&#x20;

**caption** - описание, до 1024 символов

**reply\_markup** — настройки кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)&#x20;

**parse\_mode** — форматирование текста в подписи (жирный или курсив)  [ **\*\*\***](/doc/ru/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/ru/chatbot/messendzhery/telegram/buttons.md#telegram-web-application-button).&#x20;

</details>

<details>

<summary>Отправить несколько документов или других файлов tg_send_some_document()</summary>

<mark style="color:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента в Telegram, которому должно быть отправлено сообщение  [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)&#x20;

<mark style="color:красный;">**!**</mark>**&#x20;document\_list** - массив документов. Пример формирования такого массива приведён ниже

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

**protect\_content** — флаг защиты контента от копирования. Чтобы включить, передайте любое значение, кроме 0, False или пустых кавычек ''.

**reply\_to\_message\_id -** ID сообщения, на которое нужно ответить (то есть процитировать)

**message\_thread\_id** — идентификатор темы (доступен в супергруппах с функциональностью форума)

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

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

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

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

</details>

<details>

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

Давайте разберём пример отправки одного документа, добавив к нему inline-кнопки и описание:

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

   <div data-with-frame="true"><figure><img src="/files/2f3012529f01af9da2874e827ec9e7fa19f11ee2" alt="" width="563"><figcaption></figcaption></figure></div>
3. Отправьте блок себе и посмотрите на результат нашей работы:

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

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

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

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

3\. И посмотрите на результат работы:

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

</details>

<details>

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

<mark style="color:красный;">Помните, что ссылки уникальны для каждого бота, поэтому обязательно создавайте свои собственные ссылки</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:красный;">!</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента в Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</mark>**&#x20;voice** - ссылка на голосовое сообщение в формате .OGG

**caption** - описание до 1024 символов

**reply\_markup** — настройки кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** — форматирование текста в описании: жирный или курсив [ **\*\*\***](/doc/ru/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/ru/chatbot/messendzhery/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Отправить несколько аудиосообщений <strong>tg_send_some_audio()</strong></summary>

<mark style="color:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента в Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

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

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

**protect\_content** — флаг защиты контента от копирования. Чтобы включить, передайте любое значение, кроме 0, False или пустых кавычек ''.

**reply\_to\_message\_id -** ID сообщения, на которое нужно ответить (то есть процитировать)

**message\_thread\_id** — идентификатор темы (доступен в супергруппах с функциональностью форума)

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

**Пример одного аудио:** \
\["Ссылка на аудио", "подпись", "parse\_mode"]&#x20;

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

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

</details>

<details>

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

Как уже было сказано выше, функция работает с файлами .OGG. Поэтому сначала нужно получить аудиозапись в этом формате. \
Если у вас есть **.**&#x4D;P3-файл, вы можете конвертировать его в **.**&#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/1d35bc4d82591aa7c30b79a9a830453e66af8bc3" alt="" width="563"><figcaption></figcaption></figure></div>

Отлично! Хорошая работа!

</details>

<details>

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

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

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

</details>

<details>

<summary>Ошибка при отправке голосовых сообщений</summary>

Если сообщение не удаётся отправить из-за настроек приватности, возвращается следующая ошибка:

<mark style="color:красный;">{"ok":false,"error\_code":400,"description":"Bad Request: user restricted receiving of voice messages"}</mark>

Причина ошибки: в настройках приватности пользователя включена опция «Не получать голосовые сообщения» (либо от всех, либо только от определённых пользователей):

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

Даже если пользователь отключит это ограничение приватности, ошибка всё равно продолжит появляться.

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

<mark style="color:зелёный;">**Решение:**</mark>&#x20;

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

После этого данные пользователя обновятся, и голосовые сообщения будут отправляться корректно.

</details>

## Как отправлять анимации

<details>

<summary>Отправить анимацию <strong>tg_send_animation()</strong></summary>

<mark style="color:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение. [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</mark>**&#x20;animation**- ссылка на анимацию. О том, как получить ссылку через tg\_request, объясняется [здесь](/doc/ru/chatbot/messendzhery/telegram/webhook.md)&#x20;

**caption** - описание до 1024 символов

**reply\_markup** — настройка кнопок [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** —форматирование текста в подписи: жирный или курсив  [**\*\*\***](/doc/ru/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/ru/chatbot/messendzhery/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

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

Давайте усложним задачу и отправим анимацию с копированием и защитой от спойлера.

Как всегда, процесс начинается с получения внутренней ссылки Telegram для выбранной анимации (подробности [здесь](/doc/ru/chatbot/messendzhery/telegram.md)).

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

Наконец, соберём функцию:

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

И посмотрим на результат работы:

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

</details>

<details>

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

<mark style="color:красный;">Помните, что ссылки уникальны для каждого бота, поэтому обязательно создавайте свои собственные ссылки</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:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</mark>**&#x20;video** - ссылка на видео. О том, как получить ссылки через tg\_request, см. [здесь](/doc/ru/chatbot/messendzhery/telegram/webhook.md)&#x20;

**caption** - описание до 1024 символов

**reply\_markup** — настройки кнопок  [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** — форматирование текста в подписи: жирный или курсив  [**\*\*\***](/doc/ru/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/ru/chatbot/messendzhery/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/ru/chatbot/messendzhery/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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

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

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

**reply\_to\_message\_id -** ID сообщения, на которое нужно ответить (то есть процитировать)

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

**message\_thread\_id** — идентификатор темы (доступен в супергруппах с функциональностью форума)

**Пример формирования массива video\_list:** \
'\[\["Ссылка на видео 1", "подпись", "parse\_mode"], \["Ссылка на видео 2"], \["Ссылка на видео 3", "подпись"]]'

**Пример формирования одного аудио :** \
\["Ссылка на видео", "подпись", "parse\_mode"]&#x20;

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

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

</details>

<details>

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

Итак, начните с получения ссылки на файл, который мы хотим отправить, а затем заполните необходимые параметры функции:

<div data-with-frame="true"><figure><img src="/files/465920469f7ab4cf6e31f57aed453fa112c0fded" alt="" width="563"><figcaption><p>Получение ссылки на видео через tg_request</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/3ad04d9492dc3637f95f8b1eae7b3132b43dd659" alt="" width="563"><figcaption><p>Параметр отправки видео</p></figcaption></figure></div>

После проверки мы получаем видео:

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

</details>

<details>

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

<mark style="color:красный;">Помните, что ссылки уникальны для каждого бота, поэтому обязательно создавайте свои собственные ссылки</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:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</mark>**&#x20;video\_note** - ссылка на видео. Как получить ссылку через tg\_request, описано [здесь](/doc/ru/chatbot/messendzhery/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/ru/chatbot/messendzhery/telegram/buttons.md#telegram-web-application-button)

</details>

<details>

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

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

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

Как только у вас будет круглое видео, отправьте его себе в боте, чтобы получить ссылку (подробности [здесь](/doc/ru/chatbot/messendzhery/telegram/api/attachment.md)),  а затем настройте функцию для отправки круглого видео:

<figure><img src="/files/2a9282e9f76deb2b220f13ffc8820119b6927389" alt="" width="563"><figcaption></figcaption></figure>

</details>

<details>

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

<mark style="color:красный;">Помните, что ссылки уникальны для каждого бота, поэтому обязательно создавайте свои собственные ссылки</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</mark>**&#x20;широта** —широта

<mark style="color:красный;">**!**</mark>**&#x20;долгота** — долгота

<mark style="color:красный;">**!**</mark>**&#x20;title** — название

<mark style="color:красный;">**!**</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/ru/chatbot/messendzhery/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/df5375b049885e8cde74739a403be8cd5e13283d" alt=""><figcaption></figcaption></figure></div>

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

<figure><img src="/files/98daa641227463ef855ba206ef32231b7c69faa8" alt="" width="375"><figcaption></figcaption></figure>

Теперь перейдём к заполнению параметров функции и получению желаемого результата:

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

<div data-with-frame="true"><figure><img src="/files/61f69660deff7aa574b6e1c25a390ba82d3cacb5" 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:красный;">**! - обязательный параметр функции**</mark>

Параметры:

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

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

<mark style="color:красный;">**!**</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/ru/chatbot/messendzhery/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

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

Заполните параметры: номер телефона, имя и фамилию.

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

Посмотрите результат:

<div data-with-frame="true"><figure><img src="/files/f8f4de3c5882cb5f81a7b0987705bd0b2ef67447" 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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</mark>**&#x20;sticker\_id** - ID стикера. О том, как получить ссылку через tg\_request, объясняется [здесь](/doc/ru/chatbot/messendzhery/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/ru/chatbot/messendzhery/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/43d1cce4d75bdfee9d0cf69bbe03db6d6e2a243e" alt="" width="563"><figcaption><p>Отправка стикера</p></figcaption></figure></div>

Результат:

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

</details>

<details>

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

<mark style="color:красный;">Помните, что ссылки уникальны для каждого бота, поэтому обязательно создавайте свои собственные ссылки</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:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</mark>**&#x20;photo** - ссылка на изображение. О том, как получить ссылку через tg\_request, объясняется [здесь](/doc/ru/chatbot/messendzhery/telegram/webhook.md).&#x20;

**caption** - описание до 1024 символов

**reply\_markup** — настройки кнопок  [**\*\***](#kak-propisyvat-knopki-v-parametre-reply_markup)

**parse\_mode** — форматирование текста в подписи: жирный или курсив  [**\*\*\***](/doc/ru/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/ru/chatbot/messendzhery/telegram/buttons.md#telegram-web-application-button)&#x20;

</details>

<details>

<summary>Отправить несколько фото <strong>tg_send_some_photo()</strong></summary>

<mark style="color:красный;">**!**</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:красный;">**!**</mark>**&#x20;platform\_id** — идентификатор клиента Telegram, которому должно быть отправлено сообщение [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)

<mark style="color:красный;">**!**</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", "подпись", "parse_mode"], ["Ссылка на изображение 2"], ["Ссылка на изображение 3", "подпись"]]'`

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

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

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

<mark style="color:красный;">**!**</mark>**&#x20;Ссылка на изображение 1** - ссылка на изображение. О том, как получить ссылку через tg\_request, объясняется[ здесь](/doc/ru/chatbot/messendzhery/telegram/webhook.md) &#x20;

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

**parse\_mode** — форматирование текста в подписи: жирный или курсив [**\*\*\***](/doc/ru/chatbot/builder/telegram_messages.md)

</details>

<details>

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

Рассмотрим пример функции отправки нескольких изображений:

сначала создайте массив изображений

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

Затем заполните параметры функции

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

Отправьте блок себе и наслаждайтесь результатом

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

</details>

<details>

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

<mark style="color:красный;">Помните, что ссылки уникальны для каждого бота, поэтому обязательно создавайте свои собственные ссылки для видео</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:красный;">**!**</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/ru/chatbot/messendzhery/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/84e0991c07256e598d01de49e123d7402d818231" alt="" width="563"><figcaption></figcaption></figure></div>

В этом случае клиент получит кость:

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

Если клиент бросит кость (нажав на полученное эмодзи), бот получит callback с количеством выпавших очков:

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

Вы можете поэкспериментировать с этой функцией. Например, создадим слот-машину и добавим **Очки** кнопку. При нажатии на кнопку мы получим суммарные очки клиента:

<div data-with-frame="true"><figure><img src="/files/4c5b837f01d47a141730e88dc94cbbbd82d70d47" alt="" width="563"><figcaption><p><strong>Первое сообщение:</strong> Предложить сыграть</p></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/ee994fcca2f5b94e94e3c67aeb980f4a7b8febbd" 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:оранжевый;">**Примечание: документы и аудиофайлы нельзя объединять с другими типами файлов!**</mark>

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

Параметры:

<mark style="color:красный;">!</mark> platform\_id — идентификатор клиента Telegram, которому должно быть отправлено сообщение

<mark style="color:красный;">!</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:красный;">!</mark> type - тип файла, “photo”, “video”, “audio” или ”document”

<mark style="color:красный;">!</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/d34bdb8adee93d141814f8f4ea0818de193df45a" alt=""><figcaption></figcaption></figure></div>

Затем заполните параметры функции

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

Отправьте блок себе и наслаждайтесь результатом

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

</details>

<details>

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

<mark style="color:красный;">Помните, что ссылки уникальны для каждого бота, поэтому обязательно создавайте свои собственные ссылки для видео</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/f95d6696c30fa16a1e214a2caff5a69fe0a2cfa6" alt="" width="563"><figcaption></figcaption></figure></div>

Затем вставьте скопированную ссылку в функцию вложения в вашем блоке:

<div data-with-frame="true"><figure><img src="/files/4402a46153b03dc65881f31d421b0af0fee43d7b" 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/ru/chatbot/messendzhery/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.
