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

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

! Ці функції дозволяють надсилати файли будь-якого типу. Рекомендовані формати: GIF, PDF, ZIP до 2 ГБ.

! Робота з бізнес-акаунтом Telegram

tg_send_document(platform_id, document, caption, reply_markup, parse_mode, reply_to_message_id, protect_content, disable_notification, message_thread_id, entities)

Параметри:

!** platform_id** — ідентифікатор клієнта в Telegram, якому потрібно надіслати повідомлення *

!** document** — посилання на документ на сервері Telegram. Отримання посилання через tg_request описано тут.

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

reply_markup — налаштування кнопок **

parse_mode — форматування тексту в описі (жирний або курсив) *****. Можливі значення: 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"}]

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

Щоб спростити опис набору кнопок, можна скористатися наступним лайфхаком.

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

! Ці функції дозволяють надсилати файли будь-якого типу. Рекомендовані формати: GIF, PDF, ZIP до 2 ГБ.

tg_send_some_document(platform_id, document_list, disable_notification, protect_content, reply_to_message_id, message_thread_id)

Параметри:

!** platform_id** — ідентифікатор клієнта в Telegram, якому потрібно надіслати повідомлення *

!** 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"]]'\

Приклад форматування даних для одного документа
["Посилання на документ", "caption", "parse_mode"]\

Порядок параметрів важливий! Під час створення масиву документів лапки " " можна опускати.

Опис параметрів для масиву document_list:
!** Посилання на документ** — посилання на документ із сервера Telegram. Отримання посилання через tg_request описано тут
caption — опис до 1024 символів
parse_mode — форматування опису, тобто виділення тексту жирним або курсивом ***

Приклад

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

  1. Спочатку отримайте посилання на ваш документ. Детальне пояснення, як це зробити, можна знайти тут.

  2. Створіть блок і встановіть змінні, як показано на скріншоті:

  3. Надішліть блок собі та подивіться на результат нашої роботи:

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

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

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

Приклад коду для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання

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

lnkdoc= "BQACAgIAAxkBAAIQA2O8oEMNYPTgjLvglZ63HIYYOBwFAALvHwACtjXoSXFhhNvRN6MGLQQ"
opts = {"inline_keyboard": [[{"text": "Excellent","callback_data":"Answer1"}, {"text": "Not accepted","callback_data":"Answer2"}]]}
soob=tg_send_document(platform_id, lnkdoc, "Document sending", opts) 

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

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

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

Надіслати голосове повідомлення **tg_send_voice(**)

! Ця функція дозволяє надсилати голосові файли у форматі .OGG, закодовані за допомогою OPUS, розміром до 2 ГБ.

! Робота лише з бізнес-акаунтом Telegram

tg_send_voice(platform_id, voice, caption, reply_markup, parse_mode, reply_to_message_id, protect_content, disable_notification, message_thread_id, entities)

Параметри:

!** platform_id** — ідентифікатор клієнта в Telegram, якому потрібно надіслати повідомлення *

!** voice** — посилання на голосове повідомлення у форматі .OGG

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

reply_markup — налаштування кнопок **

parse_mode — форматування тексту в описі (жирний або курсив) *****. Можливі значення: 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"}]

У прикладі показано лише словник, тоді як текст повідомлення визначається в змінній.

Щоб спростити опис набору кнопок, можна скористатися наступним лайфхаком

Надіслати кілька аудіоповідомлень **tg_send_some_audio()**

! Ця функція дозволяє надсилати аудіофайли у форматі .MP3 або .M4A максимальним розміром 2 ГБ.

! Робота з бізнес-акаунтом Telegram

tg_send_some_audio(platform_id, audio_list, disable_notification, protect_content, reply_to_message_id, message_thread_id)

Параметри:

!** platform_id** — ідентифікатор клієнта в Telegram, якому потрібно надіслати повідомлення *

!** audio_list** — масив аудіофайлів (деталі нижче)

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

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

reply_to_message_id — ID повідомлення, на яке відповідаємо (тобто цитата)

message_thread_id — ID теми (доступний у супергрупах з функцією форуму)

Приклад побудови масиву audio_list:
'[["Посилання на аудіо 1", "caption", "parse_mode"], ["Посилання на аудіо 2"], ["Посилання на аудіо 3", "caption"]]'\

Приклад одного аудіо:
["Посилання на аудіо", "caption", "parse_mode"]\

Порядок параметрів важливий! Під час побудови масиву аудіофайлів лапки "" можна опускати

Опис параметрів:
!** Посилання на аудіо** — посилання на аудіофайл у форматі .OGG
caption — опис (до 1024 символів)
parse_mode — форматування тексту в описі (жирний або курсив) ***

Приклад

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

Далі надішліть отриманий файл собі в бот, щоб отримати file_id за алгоритмом, описаним тут.

Тепер зберіть функцію:

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

Приклад для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання

tg_send_voice(platform_id, "CQACAgIAAxkBAAER70Bi8VkgNhegB-msqDWXm2qHi3n9-AAC-iAAAk6giUvIXkW-XzBN0ikE")
Помилка під час надсилання голосових повідомлень

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

{"ok":false,"error_code":400,"description":"Bad Request: user restricted receiving of voice messages"}

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

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

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

Рішення:

Після того, як користувач змінить свої налаштування приватності, потрібно зачекати паузу 30–60 секунд (поки сервери месенджера оброблять зміни), і лише потім надіслати API-запит до Telegram через бота:\n****https://api.telegram.org/bot\\/getChat?chat_id=#{platform_id}****

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

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

Надіслати анімацію tg_send_animation()

! Ця функція дозволяє надсилати GIF або H.264/MPEG-4 AVC відео без звуку максимальним розміром 2 ГБ.

! Робота з Telegram business-account

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)

Параметри:

!** platform_id** — ID клієнта Telegram, на який потрібно надіслати повідомлення. *

!** animation** — посилання на анімацію. Як отримати посилання через tg_request описано тут

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

reply_markup — конфігурація кнопок **

parse_mode — форматування тексту в описі жирним або курсивом ***. Можливі значення: html, markdown, markdownV2

reply_to_message_id — ID повідомлення, на яке відповідаємо (тобто цитата)

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

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

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

message_thread_id — 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"}]

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

Щоб спростити опис наборів кнопок, можна скористатися наступним лайфхаком

Приклад

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

Як завжди, процес починається з отримання внутрішнього посилання Telegram для вибраної анімації (детальніше тут).

Нарешті, збираємо функцію:

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

Приклад коду для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання

animation="CgACAgIAAxkBAAIQDWO9Dbb0QODBmI_CUMhKHoWch7MDAAJBIQACtjXoScUjA-n5kGCYLQQ"
caption = "Happy New Year!"
soob=tg_send_animation(platform_id, animation, caption, None, None, None, True,True)

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

Надіслати відео через API Telegram tg_send_video()

! Ця функція дозволяє надсилати файли MPEG4 розміром до 2 ГБ.
(Інші формати можна надсилати як файли за допомогою tg_send_document())

! Робота з Telegram business-account

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)

Параметри:

!** platform_id** — ID клієнта Telegram, на який потрібно надіслати повідомлення *

!** video** — посилання на відео. Як отримати посилання через tg_request дивіться тут

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

reply_markup — налаштування кнопок **

parse_mode — форматування тексту в описі жирним або курсивом ***. Можливі значення: html, markdown, markdownV2.

reply_to_message_id — ID повідомлення, на яке відповідаємо (тобто цитата)

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

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

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

message_thread_id — ID гілки (доступно в супергрупах з функцією форуму)

entities — за допомогою цього параметра можна просто скопіювати відформатований текст з усіма його особливостями та вказати, з якого символу по який він відображатиметься певним стилем. Приклад можна перевірити в tg_request у відповідному полі. Параметр має бути словником.

show_caption_above_media — якщо встановлено True, текст повідомлення відображатиметься над медіа.

cover — зображення обкладинки відео в повідомленні. Отримання URL через 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"}]

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

Щоб спростити опис наборів кнопок, можна скористатися наступним лайфхаком

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

! Робота з Telegram business-account

tg_send_some_video(platform_id, video_list, disable_notification, protect_content, reply_to_message_id, has_spoiler, message_thread_id)

Параметри:

!** platform_id** — ID клієнта Telegram, на який потрібно надіслати повідомлення *

!** video_list** — масив відеофайлів (деталі нижче)

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

reply_to_message_id — ID повідомлення, на яке відповідаємо (тобто цитата)

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

message_thread_id — ID гілки (доступно в супергрупах з функцією форуму)

Приклад побудови масиву відео video_list:
'[["Video link1", "caption", "parse_mode"], ["Video link2"], ["Video link3", "caption"]]'

Приклад побудови одного аудіо:
["Video link", "caption", "parse_mode"]

Порядок параметрів важливий! Під час побудови масиву відеофайлів лапки "" можна опустити

Опис параметрів: \n****!****** Video link** — внутрішнє посилання Telegram на відео. Отримання посилання через tg_request описано тут.
caption — текстовий підпис до 1024 символів
parse_mode — форматування тексту в підписі жирним або курсивом ***. Можливі значення: html, markdown, markdownV2.

Приклад

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

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

Приклад коду для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання

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

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

Надіслати кругле відео tg_send_video_note()

! Починаючи з версії 4.0, Telegram підтримує надсилання круглих MPEG4 відео тривалістю до однієї хвилини.

! Робота з Telegram business-account

tg_send_video_note(platform_id, video_note, reply_markup, protect_content, reply_to_message_id, disable_notification, message_thread_id)

Параметри:

!** platform_id** — ID клієнта Telegram, на який потрібно надіслати повідомлення *

!** video_note** — посилання на відео. Як отримати посилання через tg_request описано тут
reply_markup — налаштування кнопок **

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

reply_to_message_id — ID повідомлення, на яке відповідаємо (тобто цитата)

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

message_thread_id — ID гілки (доступно в супергрупах з функцією форуму)

Щоб спростити опис наборів кнопок, можна скористатися наступним лайфхаком

Приклад

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

Отримавши кругле відео, надішліть його собі в бот, щоб отримати посилання (деталі тут), а потім налаштуйте функцію для надсилання круглого відео:

Приклад коду для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання

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

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

Надіслати геолокацію tg_send_venue()

! Робота з Telegram business-account

tg_send_venue(platform_id, latitude, longitude, title, address, protect_content, disable_notification, reply_to_message_id, reply_markup, message_thread_id)

Параметри:

! platform_id — ідентифікатор клієнта Telegram, на який потрібно надіслати повідомлення *

! latitude — широта

! longitude — довгота

! title — назва

! address — адреса

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

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

reply_to_message_id - ID повідомлення, на яке потрібно відповісти (тобто цитата)

reply_markup — налаштування кнопок **

message_thread_id — ID гілки (доступно в супергрупах з функціоналом форуму)

Щоб спростити опис наборів кнопок, ви можете скористатися наступним лайфхаком

Приклад

Отже, почнемо з визначення координат місця. Ви можете отримати їх за допомогою Google Maps

Далі перетворіть отримані координати з десяткових градусів у географічний формат за допомогою будь-якого онлайн конвертера координат:

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

Приклад коду для копіювання
soob=tg_send_venue(platform_id, "48°52′", "2°4′", "Dreams come true!", "Paris, Eiffel Tower") 

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

Надіслати контакт tg_send_contact()

! Робота з Telegram business - акаунтом

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)

! - обов'язковий параметр функції

Параметри:

! platform_id — ідентифікатор клієнта Telegram, на який потрібно надіслати повідомлення *

! phone — номер телефону в міжнародному форматі. Наприклад, для Росії: +7XXXXXXXXXX

! first_name та last_name - ім'я та прізвище

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

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

reply_to_message_id - ID повідомлення, на яке потрібно відповісти (тобто цитата)

reply_markup — налаштування кнопок **

message_thread_id — ID гілки (доступно в супергрупах з функціоналом форуму)

Щоб спростити опис наборів кнопок, ви можете скористатися наступним лайфхаком

Приклад

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

Перевірте результат:

Приклад коду для копіювання
soob=tg_send_contact(platform_id, "+79999999999", "Ann", "Test", 1) 

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

Надіслати стікер tg_send_sticker()

! Робота з Telegram business - акаунтом

tg_send_sticker(platform_id, sticker_id, protect_content, disable_notification, reply_to_message_id, reply_markup, message_thread_id)

Параметри:

! platform_id — ідентифікатор клієнта Telegram, на який потрібно надіслати повідомлення *

! sticker_id - ID стікера. Як отримати посилання через tg_request, описано тут

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

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

reply_to_message_id - ID повідомлення, на яке потрібно відповісти (тобто цитата)

reply_markup — налаштування кнопок **

message_thread_id — ID гілки (доступно в супергрупах з функціоналом форуму)

Щоб спростити опис наборів кнопок, ви можете скористатися наступним лайфхаком

Приклад

Надсилання стікера нічим не відрізняється від надсилання будь-якого іншого вкладення:\

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

Результат:

Приклад коду для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання

soob=tg_send_sticker(platform_id, 'CAACAgIAAxkBAAEawJ5jmNeyat8uPGBMP3JzubRNXGjH3wACrw4AAsYg4UqePobN94_jkywE')

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

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

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

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

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

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

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

Надіслати фото tg_send_photo()

! Фото має бути не більше 10 МБ. Загальна ширина та висота не повинні перевищувати 10 000 пікселів. Співвідношення ширини до висоти не повинно перевищувати 20.

! Робота з Telegram business - акаунтом

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)

Параметри:

! platform_id — ідентифікатор клієнта Telegram, на який потрібно надіслати повідомлення *

! photo - посилання на зображення. Як отримати посилання через tg_request, описано тут.

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

reply_markup — налаштування кнопок **

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

reply_to_message_id - ID повідомлення, на яке потрібно відповісти (тобто цитата)

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

has_spoiler — вмикає форматування спойлера, встановіть значення True для активації

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

message_thread_id — 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"}]

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

Щоб спростити опис наборів кнопок, ви можете скористатися наступним лайфхаком

Надіслати кілька фото tg_send_some_photo()

! Фото має бути не більше 10 МБ. Загальна ширина та висота не повинні перевищувати 10 000 пікселів. Співвідношення ширини до висоти не повинно перевищувати 20.

! Робота з Telegram business-акаунтом

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)

Параметри:

! platform_id — ідентифікатор клієнта Telegram, на який потрібно надіслати повідомлення *

! image_list - масив файлів зображень (деталі нижче)

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

protect_content — прапорець захисту вмісту від копіювання (необов'язковий параметр, щоб увімкнути, передайте 1 як значення)

reply_to_message_id - ID повідомлення, на яке потрібно відповісти (тобто цитата)

has_spoiler — вмикає форматування спойлера (необов'язково; встановіть значення True для активації)

message_thread_id — ID гілки (доступно в супергрупах з функціоналом форуму)

Приклад image_list:

'[["Image link 1", "caption", "parse_mode"], ["Image link 2"], ["Image link 3", "caption"]]'

Приклад даних для одного зображення:
["Image link 1", "caption", "parse_mode"]

Порядок параметрів важливий! Під час побудови масиву файлів зображень лапки "" можна опускати

Опис параметрів:

! Image link 1 - посилання на зображення. Як отримати посилання через tg_request, описано тут

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

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

Приклад

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

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

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

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

Приклад коду для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання для відео

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)

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

Надіслати емодзі з випадковим вибором (Кубик) tg_send_dice()

tg_send_dice(platform_id, emoji, reply_markup, disable_notification, reply_to_message_id, protect_content, message_thread_id)

! Робота з Telegram business - акаунтом

Параметри:

! platform_id — ідентифікатор клієнта Telegram, на який потрібно надіслати повідомлення *

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

reply_markup — налаштування кнопок **

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

reply_to_message_id - ID повідомлення, на яке потрібно відповісти (тобто цитата)

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

message_thread_id — ідентифікатор гілки (доступно в супергрупах з функціоналом форуму)

Щоб спростити опис наборів кнопок, можна скористатися наступним лайфхаком

Список можливих емодзі: \

  1. 'darts' або '🎯', значення від 1 до 6 \
  2. 'dice' або '🎲', значення від 1 до 6 \
  3. 'bowling' або '🎳', значення від 1 до 6 \
  4. 'basketball' або '🏀', значення від 1 до 5 \
  5. 'football' або '⚽', значення від 1 до 5 \
  6. 'slots' або '🎰', значення від 1 до 64


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

Приклад

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

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

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

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

Приклад коду для копіювання

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

soob=tg_send_dice(platform_id)

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

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

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

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

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

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

! Робота з Telegram business - акаунтом

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

Примітка: документи та аудіофайли не можна групувати з іншими типами файлів!

tg_send_media_group(platform_id, media_list, disable_notification, protect_content, reply_to_message_id, message_thread_id)

Параметри:

! platform_id — ідентифікатор клієнта Telegram, на який потрібно надіслати повідомлення

! media_list - масив, що містить від 2 до 10 фотографій, відео, документів або аудіофайлів (деталі нижче);

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

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

reply_to_message_id - ID повідомлення, на яке потрібно відповісти (тобто цитата)

message_thread_id — ідентифікатор гілки (доступно в супергрупах з функціоналом форуму);

Вміст елементів масиву media_list:

! type - тип файлу, “photo”, “video”, “audio” або ”document”

! 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": "ghosts video"}, {"type": "video", "media": "BAACAgIAAxkBAAIKpGW6P_HGDoVz7u4blDF6925WO-hmAALVPQACicvYSYwIWCJKwKIWNAQ", “caption”: “hare video”}]

Приклад

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

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

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

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

Приклад коду для копіювання

Пам'ятайте, що посилання унікальні для кожного бота, тому обов'язково генеруйте власні посилання для відео

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)

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

Приклад

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

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

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

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

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

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