Як надсилати повідомлення за допомогою 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)