parse_mode — выделение текста в описании жирным или курсивом***. Может иметь значения html, markdown, markdownV2.
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в 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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Отправить несколько документов или другие файлы tg_send_some_document()
! Данные функции позволяют отправить файлы любого типа, рекомендуемые - GIF, PDF и ZIP весом до 2Гб.
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! document_list - массив документов, пример построения такого массива рассмотрен ниже
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Пример построения массива document_list:
'[["Ссылка на документ1", "caption", "parse_mode"], ["Ссылка на документ 2"], ["Ссылка на документ 3", "caption"]]'
Пример записи данных для одного документа:
["Ссылка на документ", "caption", "parse_mode"]
Важен порядок параметров! При построении массива документов кавычки "" могут быть опущены
Описание параметров для массива document_list:! Ссылка на документ - ссылка на документ с сервера Telegram. Получение ссылки через tg_request рассмотрено тутcaption — описание до 1024 символов
parse_mode — разметка описания, т.е. выделение текста в описании жирным или курсивом ***
Пример как отправить документ с помощью API Telegram здесь.
Отправить голосовое сообщение tg_send_voice()
! Данная функция позволяет отправить голосовые файлы типа .OGG, закодированные с помощью OPUS, весом до 2Гб.
parse_mode — выделение текста в описании жирным или курсивом***. Может иметь значения html, markdown, markdownV2.
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в 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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Отправить несколько аудиосообщений tg_send_some_audio()
! Данная функция позволяет отправить аудиофайлы типа .MP3 or .M4A размером не больше 2Гб.
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! audio_list - массив аудио (подробнее ниже)
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Пример построения массива аудио audio_list:
'[["Ссылка на аудио1", "caption", "parse_mode"], ["Ссылка на аудио 2"], ["Ссылка на аудио 3", "caption"]]'
Пример записи данных одногоаудио:
["Ссылка на аудио", "caption", "parse_mode"]
Важен порядок параметров!При построении массива аудиофайлов кавычки "" могут быть опущены
Описание параметров: ! Ссылка на аудио - ссылка на аудио в формате .OGG
caption — описание до 1024 символов
parse_mode — выделение текста в описании жирным или курсивом***
Пример как отправить голосовое сообщение с помощью API Telegram здесь.
Отправить анимацию tg_send_animation()
! Данная функция позволяет отправить файл типа GIF или H.264/MPEG-4 AVC видео без звука весом до 2Гб.
parse_mode — выделение текста в описании жирным или курсивом***. Может иметь значения html, markdown, markdownV2.
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
has_spoiler — создание спойлера. Чтобы включить, передайте True
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в 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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Пример как отправить анимацию с помощью API Telegram здесь.
Отправить видео с помощью API Telegram
! Данная функция позволяет отправить файл типа MPEG4 весом до 2Гб.
(иные форматы можно отправить как файлы через tg_send_document())
parse_mode — выделение текста в описании жирным или курсивом***. Может иметь значения html, markdown, markdownV2.
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
has_spoiler — создание спойлера. Чтобы включить, передайте True
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в 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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! video_list - массив видео (подробнее ниже)
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
has_spoiler — создание спойлера (необязательный параметр, если требуется включить, то передайте True)
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Пример построения массива видео video_list:
'[["Ссылка на видео1", "caption", "parse_mode"], ["Ссылка на видео2"], ["Ссылка на видео3", "caption"]]'
Пример записи данных одного видео:
["Ссылка на видео", "caption", "parse_mode"]
Важен порядок параметров! При построении массива видео кавычки могут быть опущены
Описание параметров: ! Ссылка на видео — ссылка на видео внутрення Telegram. Получение ссылки через tg_request рассмотрено тутcaption — подпись до 1024 символов
parse_mode — выделение текста в описании жирным или курсивом***. Может иметь значения html, markdown, markdownV2.
Пример как отправить видео с помощью API Telegram здесь.
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! latitude —широта
! longitude — долгота
! title — название
! address — адрес
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Пример как отправить геоточку с помощью API Telegram здесь.
Отправить контакт tg_send_contact()
! Работает с бизнес-аккаунтом в Телеграм
В Telegram есть быстрый способ обменяться контактами из записной книжки. Мессенджер поддерживает отправку данных vCard — электронной визитной карточки.
Функция tg_send_contact позволяет отправить контактный номер телефона с именем(названием организации). А также добавить к сообщению кнопки и настроить защиту контента для сообщения.
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! phone — номер телефона в международном формате. Например, для РФ это +7XXXXXXXXXX
! first_name и last_name - имя и фамилия, соответственно
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! sticker_id - идентификатор стикера. Получение ссылки через tg_request рассмотрено тут
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Пример как отправить стикер с помощью API Telegram здесь.
Отправить картинку tg_send_photo()
! Фотография должна быть размером не более 10 МБ. Суммарная ширина и высота фотографии не должны превышать 10000. Соотношение ширины и высоты должно быть не более 20.
parse_mode — выделение текста в описании жирным или курсивом***
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
has_spoiler — создание спойлера. Чтобы включить, передайте True
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в 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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Отправить несколько картинок tg_send_some_photo()
! Фотография должна быть размером не более 10 МБ. Суммарная ширина и высота фотографии не должны превышать 10000. Соотношение ширины и высоты должно быть не более 20.
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! image_list - массив картинок (подробнее ниже)
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
protect_content — для защиты от копирования (необязательный параметр, если нужно включить, то передайте в качестве параметра 1)
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
has_spoiler — создание спойлера (необязательный параметр, если требуется включить, то передайте True)
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Пример image_list:
'[["Ссылка на картинку 1", "caption", "parse_mode"], ["Ссылка на картинку 2"], ["Ссылка на картинку 3", "caption"]]'
Пример данных одной картинки:
["Ссылка на картинку 1", "caption", "parse_mode"]
Важен порядок параметров! При построении массива картинок кавычки могут быть опущены
Описание параметров:
! Ссылка на картинку 1 - ссылка на картинку. Получение ссылки через tg_request рассмотрено тут
caption — подпись до 1024 символов
parse_mode — выделение текста в описании жирным или курсивом***
Для понимания: Параметр caption это описание картинки (описание - краткое содержание или подпись с пояснением к изображению). Если caption указать при отправке одной картинке, то сообщение придет с текстом и вложением.
В случае когда каждая картинка имеет описание, то к каждой картинке придет описание. Отображается при нажатии на картинку.
Данную информацию и принцип работы функции вы можете так же узнать в официальной документации Telegram.
*Если выполняете настройки по видео-инструкции, то просмотрите ее, пожалуйста, внимательно.
Пример как отправить стикер с помощью API Telegram здесь.
Отправить круглое видео tg_send_video_note()
! Начиная с версии 4.0, Telegram поддерживает отправку круглого видео в формате MPEG4 и длительностью не больше минуты.
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! video_note - ссылка на видео. Получение ссылки через tg_request рассмотрено тутreply_markup — настройки кнопок **
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Пример как отправить круглое видео с помощью API Telegram здесь.
Отправить эмодзи со случайным выбором (Dice) tg_send_dice()
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
emoji - эмодзи, которое требуется отправить.Если оставить параметр незаполненным, то по умолчанию отправит кубик. Вы можете передавать в этом параметре как эмодзи в виде строки, так и ключевое слово, используемое для его обозначения.
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Для упрощения описания набора кнопок можно воспользоваться следующим лайфхаком
Список возможных emoji:
1) 'darts' или '🎯', для значений от 1 до 6
2) 'dice' или '🎲', для значений от 1 до 6
3) 'bowling' или '🎳', для значений от 1 до 6
4) 'basketball' или '🏀', для значений от 1 до 5
5) 'football' или '⚽', для значений от 1 до 5
6) 'slots' или '🎰', для значений от 1 до 64
Также если клиент отправит боту одно из этих эмодзи, то вы получите коллбэк с информацией о количестве очков и какое использовалось эмодзи.
Пример как отправить эмодзи со случайным выбором здесь.
Отправить медиа группу tg_send_media_group()
! Работает с бизнес-аккаунтом в Телеграм
Метод, чтобы отправить группу фотографий, видео, документов или аудио в виде альбома. В случае успеха возвращается массив отправленных файлов.
Помните, что документы и аудиофайлы нельзя группировать с другим типами файлов!
! platform_id — идентификатор клиента в Telegram, которому необходимо отправить сообщение;
! media_list - массив, содержащий от 2 до 10 фотографий, видео, документов или аудио (подробнее ниже);
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0) 1 - отключить уведомление при получении, 0 - передать с уведомлением;
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек '';
reply_to_message_id - идентификатор сообщения, которое необходимо процитировать;
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума);
Содержание элементов массива media_list:
! type - тип файла, “photo”, “video”, “audio” или ”document”
! media - Файл для отправки. Передайте file_id для отправки файла, который существует на серверах Telegram (рекомендуется), передайте URL-адрес HTTP для Telegram, чтобы получить файл из Интернета, или передайте «attach://<file_attach_name>», чтобы загрузить новый, используя multipart/form-data под именем <file_attach_name>.
Документы: Пример как отправить с помощью API Telegram
Разберем пример с отправкой одного документа, добавим инлайн-кнопки и описание к документу:
Для начала получите ссылку на Ваш документ. Как это сделать подробно описано тут.
Создаем блок, задаем переменные, как на скрине:
Отправляем блок себе и видим результат нашей работы:
Теперь разберем отправку нескольких документов
Тут также необходимо получит на каждый документ внутреннюю ссылку Telegram и сформировать массив
lnkdoc='[["BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ", "Документ1"],["BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ", "Документ2"]]'
В окончании собираем функцию отправки документов:
3. Любуемся результатом нашего труда:
Не забывайте ссылки уникальны для каждого бота, поэтому не забудьте сформировать свои ссылки
Описание всех параметров для функции отправки документов в этой статье.
Голосовое сообщение
Как сказано в описании функция работает с файлами типа .OGG. Таким образом, первая задача - получение аудиозаписи в данном формате.
Если у Вас файл .MP3, то Вы сможете его преобразовать в формат .OGG при помощи бота https://t.me/mp3toolsbot
Далее полученный файл отправляете себе в бот для получения file_id по алгоритму, который описан тут.
Собираем функцию:
Отлично! Мы молодцы!
Не забывайте ссылки уникальны для каждого бота, поэтому не забудьте сформировать свою ссылку
Описание всех параметров для функции отправки голосового сообщения в этой статье.
Ошибка при отправке голосовых сообщений
В случае, если сообщение не отправилось из-за настроек конфиденциальности, то возвращается следующая ошибка:
{"ok":false,"error_code":400,"description":"Bad Request: user restricted receiving of voice messages"}
Суть ошибки: наличие в настройках конфиденциальности вашего пользователя "Не получать голосовые сообщения" (от всех или получать только от определенных пользователей):
Причем, если пользователь и отключит данную настройку конфиденциальности, то ошибка все равно будет приходить.
Причем только полное удаление клиента из базы Salebot помогает преодолеть данную ошибку, хотя и пользователь уже включил разрешение.
Решение:
После того, как пользователь изменил настройки конфиденциальности, нужно выждать паузу 30-60 секунд (пока сервера мессенджера обработают изменения), и после этого отправить ботом API запрос в Telegram:
https://api.telegram.org/bot<TOKEN>/getChat?chat_id=#{platform_id}
После этого данные о пользователе обновятся и голосовые сообщения уходят корректно.
Анимация: : Пример как отправить с помощью API Telegram
Давайте усложним задачу и отправим анимацию с защитой от копирования и со спойлером.
Итак, работа как всегда начинается с получения внутренний ссылки Telegram на выбранную нами анимацию (подробно тут)
Собираем функцию:
И проверяем нашу работу:
Не забывайте ссылки уникальны для каждого бота, поэтому не забудьте сформировать свою ссылку
Описание всех параметров для функции отправки контакта в этой статье.
Стикер: Пример как отправить с помощью API Telegram
Отправка стикера ничем не отличается от отправки любого иного вложения:
1. Получаем внутреннюю ссылку Telegram (подробнее тут)
2. Заполняем параметры функции
3. Отправляем блок себе и смотрим результат
Результат:
Не забывайте ссылки уникальны для каждого бота, поэтому не забудьте сформировать свою ссылку
Описание всех параметров для функции отправки картинок в этой статье.
Эмодзи: пример как отправить эмодзи со случайным выбором (Dice)
Самый простой вариант - отправка функции только с одним обязательным параметром:
В этом случае клиент получит кубик:
Если клиент скинет кубик (клик по полученному эмодзи), то в бот прилетит колбек о выпавшем количестве очков:
Можно поэкспериментировать в использовании данной функции. Например, давайте используем слот-машину, добавим кнопку Очки. При нажатии на кнопку будем получать общее колиество очков у клиента:
1й пример:
soob=tg_send_dice(platform_id)
2й пример:
/* 1й блок */
tg_send_message(platform_id,'Кликните по слот-машине, чтобы испытать удачу!')
opts='{"inline_keyboard": [[{"text": " 👓 ","callback_data":"Играем"}]]}'
soob=tg_send_dice(platform_id, 'slots', opts)
/* 2й блок - Текст Сообщение */
Выпало #{res[1]} очков
/* 2й блок - Калькулятор */
res=splitter('#{question}', ' ')
balls=if(balls==None,0,balls) + int(res[1])
/* 3й блок - Текст Сообщение */
У Вас всего #{balls} очков
Описание всех параметров для отправки эмодзи со случайным выбором в этой статье.
Отправка "тяжелых" вложений
В телеграм (как в бизнес аккаунте, так и в обычном) можно отправлять вложения с помощью ссылки:
Можно отправлять вложения с любым размером, обходя ограничения;
Также направляются любые виды вложений, которые вам необходимы.
Как это сделать?
Скопируйте ссылку на вложение, которое уже существует в публичном доступе:
Далее вставьте скопированную ссылку в функции вложения в блоке:
Готово. Таким образом вы можете направлять вложения любого вида и размера.