Функції для надсилання та редагування повідомлень

Як надсилати повідомлення за допомогою облікового запису 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 у відповідному полі. Параметр має бути словником. Дивіться вкладку з прикладом для довідки.

chevron-rightДетальний прикладhashtag

Розгляньмо простий приклад із набором обов’язкових параметрів:

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 — щоб увімкнути його. >Сповіщення — це спливаюче вікно, що відображає текст повідомлення. Увімкнімо його.

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

Поле "Calculator"

Ось що ми отримали: Після того як клієнт надсилає нам ключове слово 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)

circle-info

Щоб присвоїти змінній текст із переносами рядків, вкажіть значення так:

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 значення використовується під час підключення бота та відображається в каналах. Його слід вказати, якщо в параметрах є токен бота і повідомлення потрібно надіслати через обліковий запис користувача, пов’язаний із ботом.

chevron-rightПрикладhashtag

Приклад передавання параметра: 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

circle-exclamation

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

Потрібна реакція передається як рядок.

chevron-rightПрикладhashtag

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

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

Налаштування кнопки **

Як редагувати вбудовану клавіатуру в повідомленні

Параметр
Опис

! platform_id

Ідентифікатор користувача Telegram, якому слід надіслати повідомлення *

! message_id

Ідентифікатор повідомлення, яке потрібно відредагувати. Цей ID слід заздалегідь зберегти під час надсилання повідомлення.

! reply_markup

Налаштування кнопки **

circle-exclamation
chevron-rightПриклад: редагування повідомлення через Telegram APIhashtag

Нижче ви можете знайти детальний приклад роботи з функціями 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

chevron-rightПриклад коду для копіюванняhashtag

Приклад 1

Приклад 2

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

chevron-rightПриклад конфігураціїhashtag

Отже, надішлемо собі повідомлення з вбудованою клавіатурою:

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

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

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

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

chevron-rightПриклад коду для копіюванняhashtag

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

chevron-rightПрикладhashtag

Надішлімо повідомлення та збережімо його ID.

А тепер скопіюймо попередньо надіслане повідомлення.

chevron-rightПриклад коду для копіюванняhashtag

Last updated