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

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

Якщо ви збережете message_id з отриманої відповіді, це дозволить вам пізніше працювати з цим повідомленням (редагувати, видаляти, пересилати, коментувати).
Часто виникають труднощі при використанні всіх параметрів. Розглянемо наступний приклад:
-
Спочатку оголосіть усі параметри, що використовуються у функції. Пам'ятайте, параметри можна передавати не лише як значення, але й як змінні, що часто зручніше та зрозуміліше. Змінні, такі як platform_id та client_message_id, можна отримати з картки профілю клієнта.
platform_id — ID клієнта Telegram, якому потрібно надіслати повідомлення *\ >Ми відповімо в тому ж чаті, де пише клієнтtext - текст повідомлення. \ >Використовуємо форматування тексту - наприклад, виділення жирним.
client_message_id - 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)
Приклад передачі параметра:
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)
Як надіслати реакцію на повідомлення
tg_set_reaction(platform_id, 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)
Як редагувати медіавкладення в повідомленні
Як редагувати вбудовану клавіатуру в повідомленні
Ви можете редагувати лише вбудовану клавіатуру.
Детальний приклад роботи з функціями 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)
Як переслати повідомлення
tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)
Як видалити повідомлення
tg_delete_message(platform_id, message_id)
! Використовуйте цей метод для видалення повідомлення, включаючи службові повідомлення, з наступними обмеженнями:
- Повідомлення можна видалити лише якщо воно було надіслано менше ніж 48 годин тому.
- Повідомлення з гральним кубиком в особистому чаті можна видалити лише якщо вони були надіслані більше ніж 24 години тому.
- Боти можуть видаляти вихідні повідомлення в особистих чатах, групах і супергрупах.
- Боти можуть видаляти вхідні повідомлення в особистих чатах.
- Боти з дозволом can_post_messages можуть видаляти вихідні повідомлення в каналах.
- Якщо бот є адміністратором групи, він може видалити будь-яке повідомлення в ній.
- Якщо бот має дозвіл can_delete_messages у супергрупі або каналі, він може видалити будь-яке повідомлення там.
Як видалити кілька повідомлень
tg_delete_messages(platform_id, message_ids)
! Використовуйте цей метод для видалення повідомлення, включаючи службові повідомлення, з наступними обмеженнями:
- Повідомлення можна видалити лише якщо воно було надіслано менше ніж 48 годин тому.
- Повідомлення з гральним кубиком в особистому чаті можна видалити лише якщо вони були надіслані більше ніж 24 години тому.
- Боти можуть видаляти вихідні повідомлення в особистих чатах, групах і супергрупах.
- Боти можуть видаляти вхідні повідомлення в особистих чатах.
- Боти з дозволом can_post_messages можуть видаляти вихідні повідомлення в каналах.
- Якщо бот є адміністратором групи, він може видалити будь-яке повідомлення в ній.
- Якщо бот має дозвіл can_delete_messages у супергрупі або каналі, він може видалити будь-яке повідомлення там.
Приклад: надсилання повідомлення за допомогою Telegram API
Приклад 1
/*Зручно попередньо визначити текст у змінній*/
text='Пишу-пишу-пишу текст'
/*Функція надсилання повідомлення*/
soob=tg_send_message(platform_id, text)
/*Зберегти ID надісланого повідомлення*/
soob_id=soob['result']['message_id']
Приклад 2
id_group=-1001847103100
text='Тестування надсилання повідомлення через метод API. Наприклад, *жирний текст*'
opts = {"inline_keyboard": [[{"text": "👍","callback_data":1}, {"text": "👎","callback_data":2}]]}
disable_web_page_preview=1
protect_content=''
disable_notification=1
parse_mode='markdown'
soob=tg_send_message(id_group, text,client_message_id, opts, parse_mode, disable_web_page_preview, protect_content, disable_notification)
Приклад: редагування повідомлення за допомогою Telegram API
Отже, надішлемо собі повідомлення з вбудованою клавіатурою:

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

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

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

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

/*Зручно попередньо визначити параметри у змінній.*/
text='Який пакет ви хотіли б обрати?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функція надсилання повідомлення*/
soob=tg_send_message(platform_id, text, None, opts)
/*Зберегти ID надісланого повідомлення*/
soob_id=soob['result']['message_id']
/*Редагувати повідомлення*/
text='Який пакет вас цікавить?'
tg_edit_message_text(platform_id, soob_id, text, opts)
/*Редагувати вбудовану клавіатуру*/
opts = {"inline_keyboard": [[{"text": "Стандартний","callback_data":1}, {"text": "Преміум","callback_data":2}]]}
tg_edit_message_reply_markup(platform_id, soob_id, opts)
/*Надіслати зображення з описом*/
soob=tg_send_photo(platform_id, "AgACAgIAAxkBAAIPpWO4T7jhOgYHq6uR8rjnq9rIvBs-AAJlwDEb5fHASaGdhzgWjyn7AQADAgADeAADLQQ", "Це зображення")
/*Зберегти ID надісланого повідомлення*/
soob_id=soob['result']['message_id']
/*Редагувати зображення*/
media='{"type": "photo", "media": "AgACAgIAAxkBAAIPrmO4UiH7Tazqn-3IbFVzPKNsVEZmAAJ1wDEb5fHASWcNXKah-egvAQADAgADeQADLQQ"}'
tg_edit_message_media(platform_id, soob_id, media)
/*Редагувати опис зображення*/
tg_edit_message_caption(platform_id, soob_id, 'Це Я!')
Приклад: копіювання повідомлення за допомогою Telegram API
Надішлемо повідомлення та збережемо його ID.

І скопіюємо раніше надіслане повідомлення.

/*Зручно попередньо визначити параметри у змінній.*/
text='Який пакет ви хотіли б обрати?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функція надсилання повідомлення*/
soob=tg_send_message(platform_id, text, None, opts)
/*Зберегти ID надісланого повідомлення*/
soob_id=soob['result']['message_id']
/*Скопіювати надіслане повідомлення*/
tg_copy_message('5081438490', '1840834360', soob_id, None, opts, None, None, 1)


