Функції для надсилання та редагування повідомлень
Як надсилати повідомлення за допомогою облікового запису Telegram Business
tg_send_message(platform_id, text,client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities)
Параметри:
! platform_id
Ідентифікатор користувача Telegram, якому слід надіслати повідомлення *
! text
Текст повідомлення
client_message_id
Ідентифікатор повідомлення, яке потрібно процитувати
reply_markup
Налаштування кнопки **
parse_mode
Форматування тексту: жирний та курсив у описі ***. Може мати такі значення, як html, markdown, markdownV2.
disable_web_page_preview
Показувати попередній перегляд посилання. Щоб вимкнути його, передайте 1; інакше передайте 0 або залиште порожнім "".
protect_content
Прапорець захисту вмісту. Передайте будь-яке значення, крім 0, False або '', щоб увімкнути.
disable_notification
Прапорець звукового сповіщення (за замовчуванням: 0). Передайте 1, щоб вимкнути сповіщення, 0 — щоб увімкнути його.
message_thread_id
ID теми (доступно для супергруп із увімкненою функціональністю форуму)
entities
Це дає змогу копіювати попередньо відформатований текст разом з усіма його стилями та просто вказати діапазон символів, до якого слід застосувати певний шрифт. Приклад можна знайти в tg_request у відповідному полі. Параметр має бути словником. Дивіться вкладку з прикладом для довідки.
Детальний приклад
Розгляньмо простий приклад із набором обов’язкових параметрів:

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

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

Якщо зберегти message_id із отриманої відповіді, це дасть змогу надалі працювати з цим повідомленням (редагувати, видаляти, пересилати, коментувати).
Часто виникають труднощі під час використання всіх параметрів. Розгляньмо такий приклад:
Спочатку оголосіть усі параметри, що використовуються у функції. Пам’ятайте, параметри можна передавати не лише як значення, а й як змінні, що часто зручніше та зрозуміліше. Такі змінні, як platform_id і client_message_id, можна отримати з картки профілю клієнта. platform_id — ідентифікатор клієнта Telegram, якому потрібно надіслати повідомлення * >Ми відповімо в тому самому чаті, де пише клієнт
text - текст повідомлення. >Ми використовуємо форматування тексту — наприклад, виділення жирним.
client_message_id - Ідентифікатор повідомлення, яке потрібно процитувати >У чатах цій змінній значення призначається автоматично. reply_markup — налаштування кнопок **. >Присвоїмо його змінній opts. parse_mode — Форматування тексту: жирний та курсив у описі ***. Може мати такі значення, як html, markdown, markdownV2. Символи, що використовуються для форматування тексту повідомлення, описані тут. >Використаємо markdown. disable_web_page_preview - Показувати попередній перегляд посилання. Щоб вимкнути його, передайте 1; інакше передайте 0 або залиште порожнім "". >Можемо передати будь-яке значення, оскільки текст повідомлення не містить посилання. protect_content — Прапорець захисту вмісту. Передайте будь-яке значення, крім 0, False або '', щоб увімкнути. >Нам не потрібен захист вмісту, тому передамо порожній рядок ''. disable_notification — Прапорець звукового сповіщення (за замовчуванням: 0). Передайте 1, щоб вимкнути сповіщення, 0 — щоб увімкнути його. >Сповіщення — це спливаюче вікно, що відображає текст повідомлення. Увімкнімо його.
Далі збираємо функцію. Пам’ятайте призначити функцію змінній — це дасть змогу відстежувати статус надсилання повідомлення.

Ось що ми отримали: Після того як клієнт надсилає нам ключове слово test, ми відповідаємо, цитуючи його повідомлення.
У ok ми бачимо статус надсилання; далі йде інформація про саме повідомлення — його ID, дані відправника та вміст.
Приклад із entities параметром Ви можете зберегти початковий рядок у змінній, як показано нижче:
text = "qwert asdfg zxcvb poiuy lkjhg 12345"
Потрібно записати параметр як словник із даними та вказати потрібне форматування, зазначивши шрифти:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":" https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
Передайте параметр останнім у функції, яку використовуєте. Параметр можна передавати як у tg_send_message, так і в tg_send_message_1:
x = tg_send_message(platform_id, text, None, None, None, False, False, False, None, entities)
Щоб присвоїти змінній текст із переносами рядків, вкажіть значення так:
text = "Перший рядок тексту" + "\n" + "Другий рядок тексту" + "\n" + "Третій рядок"
Як надіслати повідомлення, вказавши певного бота Telegram
tg_send_message_1(token, platform_id, text, client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities, business_connection_id)
! token
Токен бота Telegram, отриманий від BotFather
! platform_id
Ідентифікатор користувача Telegram, якому слід надіслати повідомлення *
! text
Текст повідомлення
client_message_id
Ідентифікатор повідомлення, яке потрібно процитувати
reply_markup
Налаштування кнопки **
parse_mode
Форматування тексту: жирний та курсив у описі ***. Може мати такі значення, як html, markdown, markdownV2.
disable_web_page_preview
Показувати попередній перегляд посилання. Щоб вимкнути його, передайте 1; інакше передайте 0 або залиште порожнім "".
protect_content
Прапорець захисту вмісту. Передайте будь-яке значення, крім 0, False або '', щоб увімкнути.
disable_notification
Прапорець звукового сповіщення (за замовчуванням: 0). Передайте 1, щоб вимкнути сповіщення, 0 — щоб увімкнути його.
message_thread_id
ID теми (доступно для супергруп із увімкненою функціональністю форуму)
entities
Це дає змогу копіювати попередньо відформатований текст разом з усіма його стилями та просто вказати діапазон символів, до якого слід застосувати певний шрифт. Приклад можна знайти в tg_request у відповідному полі. Параметр має бути словником.
business_connection_id
Поле Business ID значення використовується під час підключення бота та відображається в каналах. Його слід вказати, якщо в параметрах є токен бота і повідомлення потрібно надіслати через обліковий запис користувача, пов’язаний із ботом.
Приклад
Приклад передавання параметра:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
У прикладі показано лише словник, тоді як сам текст повідомлення призначається окремій змінній.
Як редагувати текст у повідомленні Telegram
Зверніть увагу!
Функція редагування повідомлень доступна лише для нових і нещодавно надісланих повідомлень.
Часове вікно, протягом якого дозволено редагування повідомлення, визначається самим месенджером і залежить від навантаження/активності вашого бота; для редагування воно може бути скорочене.
Згідно з технічною підтримкою месенджера, оптимальний часовий проміжок для редагування повідомлення — 48 годин.
tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview, entities)
! platform_id
Ідентифікатор користувача Telegram, якому слід надіслати повідомлення *
! message_id
Ідентифікатор повідомлення, яке потрібно відредагувати. Цей ID слід заздалегідь зберегти під час надсилання повідомлення.
! text
Текст повідомлення
reply_markup
Налаштування кнопки **
parse_mode
Форматування тексту: жирний та курсив у описі ***. Може мати такі значення, як html, markdown, markdownV2.
disable_web_page_preview
Показувати попередній перегляд посилання. Щоб вимкнути його, передайте 1; інакше передайте 0 або залиште порожнім "".
entities
Це дає змогу копіювати попередньо відформатований текст разом з усіма його стилями та просто вказати діапазон символів, до якого слід застосувати певний шрифт. Приклад можна знайти в tg_request у відповідному полі. Параметр має бути словником.
Як надіслати реакцію на повідомлення
tg_set_reaction(platform_id, message_id, reaction)
! platform_id
ID чату Telegram
! message_id
Ідентифікатор повідомлення
! reaction
Потрібна реакція передається як рядок.
Приклад
Приклад коду для копіювання:
react = tg_set_reaction(platform_id, 1556, '👌')
Приклад у калькуляторі:

Як редагувати опис вкладення
tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode, entities, show_caption_above_media)
! platform_id
Ідентифікатор користувача Telegram, якому слід надіслати повідомлення *
! message_id
Ідентифікатор повідомлення, яке потрібно відредагувати
! caption
Текст опису
reply_markup
Налаштування кнопки **
parse_mode
Форматування тексту: жирний та курсив у описі ***. Може мати такі значення, як html, markdown, markdownV2.
entities
Це дає змогу копіювати попередньо відформатований текст разом з усіма його стилями та просто вказати діапазон символів, до якого слід застосувати певний шрифт. Приклад можна знайти в tg_request у відповідному полі. Параметр має бути словником.
Приклад передавання параметра:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://,mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
У прикладі показано лише словник, тоді як сам текст повідомлення призначається окремій змінній.
show_caption_above_media
Приймає значення True; якщо вказано цей параметр, текст повідомлення відображатиметься над вкладенням.
Як редагувати медіавкладення в повідомленні
! platform_id
Ідентифікатор користувача Telegram, якому слід надіслати повідомлення *
! message_id
Ідентифікатор повідомлення, яке потрібно відредагувати. Цей ID слід заздалегідь зберегти під час надсилання повідомлення.
! media
Словник, що описує медіафайл:
Приклад JSON-словника для заміни раніше надісланого фото:
media = '{"type": "photo", "media": "<file_to_send>"}'
де <file_to_send> рекомендується вказувати як file_id, отриманий через повний вебхук Telegram.
Для отримання додаткових відомостей параметри для словника описані в офіційній документації Telegram.
reply_markup
Налаштування кнопки **
Як редагувати вбудовану клавіатуру в повідомленні
Ви можете редагувати лише вбудовану клавіатуру.
Приклад: редагування повідомлення через Telegram API
Нижче ви можете знайти детальний приклад роботи з функціями Telegram API для редагування повідомлень.
Як копіювати повідомлення
tg_copy_message(platform_id, from_chat_id, message_id, reply_to_message_id, reply_markup, parse_mode, protect_content, disable_notification, caption, message_thread_id, entities, show_caption_above_media)
! platform_id
Ідентифікатор користувача Telegram, якому слід скопіювати повідомлення *
! from_chat_id
Ідентифікатор користувача Telegram, З ЯКОГО слід скопіювати повідомлення *
! message_id
Ідентифікатор повідомлення, яке потрібно скопіювати
reply_to_message_id
Ідентифікатор початкового повідомлення, якщо скопійоване повідомлення є коментарем
reply_markup
Налаштування кнопки **
parse_mode
Форматування тексту: жирний та курсив у описі ***.
Може мати такі значення, як html, markdown, markdownV2.
protect_content
Прапорець захисту вмісту. Передайте будь-яке значення, крім 0, False або '', щоб увімкнути.
disable_notification
Прапорець звукового сповіщення (за замовчуванням: 0). Передайте 1, щоб вимкнути сповіщення, 0 — щоб увімкнути його.
caption -
Опис до 1024 символів.
message_thread_id
ID теми (доступно для супергруп із увімкненою функціональністю форуму)
entities
Це дає змогу копіювати попередньо відформатований текст разом з усіма його стилями та просто вказати діапазон символів, до якого слід застосувати певний шрифт. Приклад можна знайти в tg_request у відповідному полі. Параметр має бути словником.
Приклад передавання параметра:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
У прикладі показано лише словник, тоді як сам текст повідомлення призначається окремій змінній.
show_caption_above_media
Приймає значення True; якщо вказано цей параметр, текст повідомлення відображатиметься над вкладенням.
Як переслати повідомлення
tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)
! platform_id
Ідентифікатор користувача Telegram, якому слід надіслати повідомлення *
! from_chat_id
Ідентифікатор користувача Telegram, ВІД ЯКОГО слід надіслати повідомлення *
! message_id
Ідентифікатор повідомлення для пересилання
protect_content
Прапорець захисту вмісту. Передайте будь-яке значення, крім 0, False або '', щоб увімкнути.
disable_notification
Прапорець звукового сповіщення (за замовчуванням: 0). Передайте 1, щоб вимкнути сповіщення, 0 — щоб увімкнути його.
message_thread_id
ID теми (доступно для супергруп із увімкненою функціональністю форуму)
Як видалити повідомлення
tg_delete_message(platform_id, message_id)
! Використовуйте цей метод для видалення повідомлення, включно зі службовими повідомленнями, з такими обмеженнями:
Повідомлення можна видалити лише якщо його було надіслано менш ніж 48 годин тому.
Повідомлення з кубиком у приватному чаті можна видалити лише якщо їх було надіслано понад 24 години тому.
Боти можуть видаляти вихідні повідомлення в приватних чатах, групах і супергрупах.
Боти можуть видаляти вхідні повідомлення в приватних чатах.
Боти з дозволом can_post_messages можуть видаляти вихідні повідомлення в каналах.
Якщо бот є адміністратором групи, він може видаляти там будь-яке повідомлення.
Якщо бот має дозвіл can_delete_messages у супергрупі або каналі, він може видаляти там будь-яке повідомлення.
! platform_id
Ідентифікатор користувача Telegram *
! message_id
Ідентифікатор повідомлення, яке потрібно видалити
Як видалити кілька повідомлень
tg_delete_messages(platform_id, message_ids)
! Використовуйте цей метод для видалення повідомлення, включно зі службовими повідомленнями, з такими обмеженнями:
Повідомлення можна видалити лише якщо його було надіслано менш ніж 48 годин тому.
Повідомлення з кубиком у приватному чаті можна видалити лише якщо їх було надіслано понад 24 години тому.
Боти можуть видаляти вихідні повідомлення в приватних чатах, групах і супергрупах.
Боти можуть видаляти вхідні повідомлення в приватних чатах.
Боти з дозволом can_post_messages можуть видаляти вихідні повідомлення в каналах.
Якщо бот є адміністратором групи, він може видаляти там будь-яке повідомлення.
Якщо бот має дозвіл can_delete_messages у супергрупі або каналі, він може видаляти там будь-яке повідомлення.
! platform_id
Ідентифікатор користувача Telegram
! message_ids
Масив ідентифікаторів повідомлень, які потрібно видалити. Максимум 100 елементів.
Приклад: надсилання повідомлення через Telegram API
Приклад: редагування повідомлення через Telegram API
Приклад конфігурації
Отже, надішлемо собі повідомлення з вбудованою клавіатурою:

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

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

Спробуймо відредагувати повідомлення із зображенням. Для цього надішліть повідомлення із зображенням і збережіть ID надісланого повідомлення. Прочитайте детальні інструкції про те, як отримати URL зображення тут:

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

Приклад: копіювання повідомлення через Telegram API
Last updated

