Робота з ідентифікаторами платформи в MaviBot
У MaviBot усі сутності Telegram (користувачі, групи, канали) ідентифікуються загальною змінною platform_id. Ця змінна не розрізняє типи сутностей.
Проблема: Щоб використовувати функції, як-от accept або reject, які потребують конкретних типів сутностей, потрібно знати окремо chat ID та user ID.
Рішення: Коли ви отримуєте зворотний виклик або повідомлення, одразу зберігайте значення platform_id у двох окремих змінних з відповідними назвами:
-
chat_id– для зберігання ID групи/каналу. -
user_id– для зберігання ID окремого користувача.
Це дозволяє посилатися на правильний ID пізніше у вашій логіці застосунку.
Як змінити назву чату через бота Telegram
Опис
tg_set_group_title(platform_id, title)
Змінює назву групи Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату всередині Telegram. |
| title | Нова назва чату. |
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram * |
| **!** title | нова назва чату |
Як змінити опис чату через бота Telegram
Опис
tg_set_chat_description(platform_id, description)
Змінює опис чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату всередині Telegram. |
| description | Новий опис чату. |
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram * |
| **!** description | нова назва чату |
Як встановити аватар у групі/чаті в Telegram
Опис
tg_set_chat_photo(platform_id, photo)
Встановлює нове фото профілю для чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату всередині Telegram, де ви хочете встановити нове фото профілю. |
| photo | Пряме посилання на фото. |
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram *, в якому ви хочете встановити аватар |
| **!** photo | посилання на фото |
Як видалити аватар у групі/чаті в Telegram
Опис
tg_delete_chat_photo(platform_id)
Видаляє поточне фото профілю з чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату всередині Telegram, з якого ви хочете видалити фото профілю. |
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram *, в якому потрібно встановити аватар |
Як заблокувати групу Telegram
Опис
tg_ban_chat_sender_chat(platform_id, sender_chat_id)
Блокує чат-відправника від публікації повідомлень у чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram, де буде заблоковано чат-відправника. |
| sender_chat_id | ID чату-відправника для блокування. |
Примітка
Після блокування власник чату-відправника більше не зможе публікувати повідомлення від імені цього чату у вказаному чаті Telegram, доки блокування не буде знято.
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram *, який потрібно заблокувати |
| **!** sender_chat_id | ID чату, який буде заблоковано |
Водночас заблокований власник чату не може писати від імені своїх інших чатів, доки його не розблокують.
Як розблокувати групу Telegram
Опис
tg_unban_chat_sender_chat(platform_id, sender_chat_id)
Розблоковує раніше заблокований чат-відправника в чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram, де буде розблоковано чат-відправника. |
| sender_chat_id | ID чату-відправника для розблокування. |
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram *, в якому ви розблоковуєте |
| **!** sender_chat_id | ID чату, який ви розблоковуєте |
Як створити запрошувальне посилання для приєднання до чату Telegram
Опис
tg_create_chat_invite_link(platform_id, member_limit, hours, request, name)
Створює нове запрошувальне посилання для чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram. |
| member_limit | Максимальна кількість користувачів, які можуть приєднатися за цим запрошувальним посиланням. |
| hours | Час дії запрошувального посилання, у годинах. |
| request | Якщо встановлено True, користувачі, які натиснуть посилання, повинні надіслати запит на приєднання, який адміністратор може схвалити. |
| name | Власна назва для запрошувального посилання. |
Важливо
Якщо вказано параметр member_limit, параметр request автоматично встановлюється на
False.Щоб вимагати від користувачів надсилання запитів на приєднання, залиште параметр member_limit порожнім.
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| member_limit | обмеження кількості учасників |
| hours | Час дії посилання (у годинах) |
| request | параметр, який після натискання на посилання має генерувати запит на приєднання до чату. |
| name | назва посилання |
Під час передачі параметра member_limit значення параметра request автоматично змінюється на False. Якщо вам потрібно приймати заявки на членство, залиште параметр member_limit порожнім.
Створення запрошувального посилання до чату

Як видалити запрошувальне посилання до чату в Telegram
Опис
tg_revoke_chat_invite_link(platform_id, invite_link)
Відкликає існуюче запрошувальне посилання для чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram. |
| invite_link | Запрошувальне посилання для відкликання. |
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram * |
| **!** invite_link | посилання, яке потрібно видалити |
Як деактивувати всі існуючі посилання та замінити їх одним посиланням
Опис
tg_export_chat_link(platform_id)
Створює нове основне запрошувальне посилання для чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram. |
Попередження
Цей метод генерує нове основне запрошувальне посилання для чату.
Усі раніше створені основні запрошувальні посилання стануть неактивними. Щойно згенероване посилання буде єдиним активним основним запрошувальним посиланням, доки не будуть створені додаткові запрошувальні посилання.
Використовуйте цей метод з обережністю.
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату всередині Telegram * |
| **!** invite_link | посилання, яке потрібно видалити |
Як прийняти запит і додати користувача в канал/чат Telegram
Опис
tg_approve_chat_join_request(chat_id, user_id)
Схвалює очікуваний запит на приєднання до групи або каналу Telegram.
Параметри
| Параметр | Опис |
|---|---|
| chat_id | ID групи або каналу Telegram. |
| user_id | ID користувача Telegram, чий запит на приєднання потрібно схвалити. |
| **!** chat_id | ID групи/каналу всередині Telegram * |
| **!** user_id | ID користувача всередині Telegram * |
Прийняття запиту:

Як відхилити запит у каналі/чаті Telegram
Опис
tg_decline_chat_join_request(chat_id, user_id)
Відхиляє очікуваний запит на приєднання до групи або каналу Telegram.
Параметри
| Параметр | Опис |
|---|---|
| chat_id | ID групи або каналу Telegram. |
| user_id | ID користувача Telegram, чий запит на приєднання потрібно відхилити. |
| **!** chat_id | ID групи/каналу всередині Telegram * |
| **!** user_id | ID користувача всередині Telegram * |

Як заблокувати користувача в Telegram
Опис
tg_ban_chat_member(chat_id, user_id, hours)
Блокує користувача в чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| chat_id | ID чату Telegram. |
| user_id | ID користувача Telegram для блокування. |
| hours | Тривалість блокування, у годинах. Якщо пропущено, блокування є постійним. |
Примітка
Якщо значення hours перевищує 366 днів, користувача буде заблоковано назавжди.
| Параметр | Опис |
|---|---|
| **!** chat_id | ID чату в Telegram * |
| **!** user_id | ID користувача в Telegram * для блокування |
| hours | Тривалість блокування в годинах. За замовчуванням блокування є постійним. Якщо вказати тривалість блокування більше ніж 366 днів, блокування буде встановлено як постійне. |
Як розблокувати користувача в Telegram
Опис
tg_unban_chat_member(chat_id, user_id)
Розблоковує користувача в чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| chat_id | ID чату Telegram. |
| user_id | ID користувача Telegram, якого потрібно розблокувати. |
| Параметр | Опис |
|---|---|
| **!** chat_id | ID чату в Telegram * |
| **!** user_id | ID користувача в Telegram *, якого потрібно розблокувати |
Як перевірити статус підписки в Telegram
Опис
tg_get_chat_member(chat_id, user_id)
Отримує інформацію про статус членства користувача в чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| chat_id | ID чату Telegram. |
| user_id | ID користувача Telegram, чий статус членства буде перевірено. |
| Параметр | Опис |
|---|---|
| **!** chat_id | ID чату в Telegram * |
| **!** user_id | ID користувача в Telegram *, чию підписку ми перевіряємо |
Як визначити кількість учасників у каналі/чаті
Опис
tg_get_chat_member_count(platform_id)
Повертає загальну кількість учасників у чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram. |
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
Як перевірити, чи є учасник чату в певному списку
some_client_in_list(list_id, recepient)
Перевіряє, чи включено користувача Telegram до вказаного списку.
Параметри
| Параметр | Опис |
|---|---|
| list_id | ID списку для перевірки. |
| recepient | ID користувача Telegram. Для учасників чату використовуйте змінну chat_member_id. |
| Параметр | Опис |
|---|---|
| **!** list_id | номер списку |
| **!** recepient | ID користувача в Telegram *. Для клієнтів чату це значення знаходиться у змінній chat_member_id. |
Як показати дії бота користувачу (друкувати/вибрати стікер тощо)
Опис
tg_send_chat_action(platform_id, bot_action, message_thread_id)
Надсилає дію чату (наприклад, друкування або завантаження файлу) до чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram. |
| bot_action | Дія чату для відображення. Виберіть одну з підтримуваних дій чату Telegram. |
| message_thread_id | ID теми. Доступно лише для супергруп з увімкненими темами (форумами). |
Примітка
Ця функція підтримується під час роботи з Telegram Business акаунтами.
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** bot_action | дія бота зі списку |
| message_thread_id | ID теми (доступно для супергруп, якщо доступна функція форуму). |
**Список доступних дій bot_action**
typing для текстових повідомлень,
&#xNAN;upload_photo для фотографій,
&#xNAN;record_video або upload_video для відео,
&#xNAN;record_voice або upload_voice для голосових повідомлень,
&#xNAN;upload_document для звичайних документів,
&#xNAN;choose_sticker для стікерів,
&#xNAN;find_location для даних про місцезнаходження,
&#xNAN;record_video_note або upload_video_note для відеонотаток.
Це сповіщення відображатиметься до отримання будь-якої відповіді від бота, але не більше 5 секунд.
Як показати сповіщення-попередження користувачу
Опис
tg_answer_callback_query(callback_query_id, text, show_alert, cache_time)
Надсилає відповідь на запит зворотного виклику, який спрацьовує, коли користувач натискає вбудовану кнопку в Telegram.
Параметри
| Параметр | Опис |
|---|---|
| callback_query_id | ID запиту зворотного виклику, отриманий, коли користувач натискає вбудовану кнопку. Це визначає, на який зворотний виклик відповісти. |
| text | Текст для відображення в сповіщенні. |
| show_alert | Керує способом відображення сповіщення. Встановіть False, щоб показати тимчасове сповіщення у вигляді підказки, або True, щоб відобразити постійний діалог попередження. |
| cache_time | Максимальний час у секундах, протягом якого відповідь на зворотний виклик може кешуватися на стороні клієнта. За замовчуванням 0. Клієнти Telegram підтримують кешування, починаючи з версії 3.14. |
Важливо
Цю функцію можна використовувати лише у відповідь на натискання користувачем вбудованої кнопки зворотного виклику в Telegram.
Приклад
Наступна вбудована клавіатура надсилає різні значення зворотного виклику при натисканні кожної кнопки:
[{"line":0,"index_in_line":0,"text":"111","type":"inline","callback":"first"}, {"line":1,"index_in_line":0,"text":"222","type":"inline","callback":"second"}, {"line":2,"index_in_line":0,"text":"333","type":"inline","callback":"third"}]

Після натискання кнопки надходить зворотний виклик із текстом, що міститься у відповідному полі. Коли ви натискаєте кнопку “111”, ви отримуєте зворотний виклик із текстом “first”.

Створимо блок Start і вкажемо потрібний текст у тригері. У нашому випадку: "first"

Якщо в полі Matches вибрати Ignoring errors and inaccuracies, цей блок можна буде повторно використовувати для всіх подібних варіантів, які відрізняються на 1–2 символи. Наприклад, щоб подякувати користувачеві за надання рейтингу за допомогою такої кнопки.
Далі в калькуляторі використовуйте функцію tg_answer_callback_query і передайте наступні параметри:
callback_query_id - цей ID дозволяє ідентифікувати користувача, який натиснув кнопку, і показати йому сповіщення-попередження
text - текст сповіщення-попередження.

Приклад коду для копіювання:
tg_answer_callback_query('#{callback_query_id}', "You pressed the button 111")
Зверніть увагу! Параметр callback_query_id слід передавати саме так, як показано в прикладі, тобто всередині '#{}'
Якщо все налаштовано правильно, натискання кнопки призведе до появи сповіщення-попередження із зазначеним текстом. У мобільній версії назва бота відображатиметься як заголовок над текстом.

Якщо ви хочете показати просте спливаюче повідомлення, передайте False як третій параметр, як показано в прикладі нижче:
tg_answer_callback_query('#{callback_query_id}', "You passed the button 222", False)

Додавання перенаправлення бота з тегом як відповідь на кнопку зворотного виклику
Опис
tg_callback_url_open(callback_query_id, url, cache_time)
Відкриває бота Telegram за допомогою глибокого посилання у відповідь на зворотний виклик вбудованої кнопки.
Параметри
| Параметр | Опис |
|---|---|
| callback_query_id | ID запиту зворотного виклику, отриманий, коли користувач натискає вбудовану кнопку. Це визначає, на який зворотний виклик відповісти. |
| url | Глибоке посилання на бота у форматі https://t.me/your_bot?start=XXXX, де your_bot — ім'я користувача бота, а XXXX — параметр start. |
| cache_time | Максимальний час у секундах, протягом якого відповідь на зворотний виклик може кешуватися на стороні клієнта. За замовчуванням 0. Клієнти Telegram підтримують кешування, починаючи з версії 3.14. |
Важливо
Цю функцію можна використовувати лише у відповідь на натискання користувачем вбудованої кнопки зворотного виклику в Telegram.
Приклад
У відповідь на кнопку зворотного виклику можна додати перехід до бота за допомогою тегу tg_callback_url_open('#{callback_query_id}', 't.me/bot_name?start=XXXX')
Наприклад, використаємо наступні кнопки:
[{"line":0,"index_in_line":0,"text":"111","type":"inline","callback":"first"}, {"line":1,"index_in_line":0,"text":"222","type":"inline","callback":"second"}, {"line":2,"index_in_line":0,"text":"333","type":"inline","callback":"third"}]

Після натискання кнопки надходить зворотний виклик із текстом, що міститься у відповідному полі. Коли ви натискаєте кнопку “111”, ви отримуєте зворотний виклик із текстом “first”.

Створіть блок із перевіркою основної умови та вкажіть потрібний текст в умові. У нашому випадку: “first”:

Якщо в полі Matching option вибрати Ignore errors and inaccuracies, цей блок можна буде повторно використовувати для всіх подібних варіантів, які відрізняються на 1–2 символи. Наприклад, щоб подякувати користувачеві за надання рейтингу за допомогою такої кнопки.
Далі в калькуляторі блоку вкажіть tg_callback_url_open('#{callback_query_id}', 't.me/bot_name?start=XXXX'):

Як підвищити користувача до адміністратора в супергрупі або каналі
Опис
tg_promote_user(platform_id, user_id, promote_options_list)
Підвищує користувача Telegram до адміністратора в супергрупі або каналі з вказаними дозволами.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | Ідентифікатор супергрупи Telegram або ім'я користувача каналу у форматі @channelusername при підвищенні користувача в каналі. |
| user_id | Ідентифікатор користувача Telegram, якого потрібно підвищити. |
| promote_options_list | Список дозволів адміністратора, які потрібно надати користувачеві. |
Примітка
Користувачеві буде надано лише ті дозволи, які включені до promote_options_list.
**Обов'язковий параметр: promote_options_list**
У promote_options_list можна вказати такі дозволи:
- is_anonymous — приховує присутність адміністратора в чаті,
- can_manage_chat — адміністратор може переглядати журнал подій чату, статистику чату, статистику повідомлень у каналах, переглядати учасників каналу, переглядати анонімних адміністраторів у супергрупах та обходити повільний режим. Цей рівень дозволу надається за замовчуванням, якщо вказано будь-який із наступних привілеїв
- can_post_messages — адміністратор може створювати публікації в каналі (лише канали)
- can_edit_messages — адміністратор може редагувати повідомлення інших користувачів і закріплювати повідомлення (лише канали)
- can_delete_messages — адміністратор може видаляти повідомлення інших користувачів
- can_manage_video_chats — адміністратор може керувати відеочатами,
- can_restrict_members — адміністратор може обмежувати учасників, блокувати/розблоковувати їх у чаті,
- can_promote_members — адміністратор може призначати нових адміністраторів із підмножиною власних привілеїв або знижувати адміністраторів, яких він призначив безпосередньо чи опосередковано (наприклад, адміністраторів, призначених ним)
- can_change_info — адміністратор може змінювати назву чату, фото та інші налаштування
- can_invite_users — адміністратор може запрошувати нових користувачів до чату
- can_pin_messages — адміністратор може закріплювати повідомлення (лише супергрупи).
Приклад
Приклад: Підвищення користувача до адміністратора в супергрупі:

У цьому прикладі, окрім вказаних дозволів, дозвіл can_manage_chat буде надано за замовчуванням.


Приклад коду для копіювання
Приклад 1.
promote_options_list = ‘[“can_promote_members”,”can_change_info”,”can_invite_users”]’
tg_promote_user(platform_id, user_id, promote_options_list)
Приклад 2.
promote_options_list = '["can_manage_chat","can_post_messages","can_edit_messages","can_delete_messages","can_manage_video_chats","can_promote_members","can_restrict_members","can_invite_users","can_pin_messages"]'
result=tg_promote_user(platform_id, reply_from, promote_options_list)
Як змінити титул адміністратора за допомогою бота в Telegram
Опис
tg_set_administrator_title(platform_id, user_id, title)
Встановлює спеціальний титул адміністратора для адміністратора супергрупи Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | Ідентифікатор супергрупи Telegram. |
| user_id | Ідентифікатор користувача Telegram (адміністратора). |
| title | Спеціальний титул адміністратора. |
Важливо
- Довжина титулу має бути від 0 до 16 символів.
- Емодзі не дозволені в титулі.
- Ця функція працює лише для адміністраторів, яких підвищив бот.
Приклад
result = tg_set_administrator_title(platform_id, reply_from, "firetitle")
Загальні обмеження для звичайних учасників чату або конкретних користувачів Telegram
Опис
tg_chat_permission(platform_id, permission, media_permissions)
Встановлює дозволи за замовчуванням для учасників чату Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | Ідентифікатор чату Telegram. |
| permission | Масив загальних дозволів чату. Кожен елемент відповідає дозволу зі списку підтримуваних дозволів. Використовуйте 1, щоб дозволити дію, і 0, щоб заборонити її. |
| media_permissions | Масив дозволів, пов'язаних із медіа. Кожен елемент відповідає дозволу зі списку підтримуваних медіа-дозволів. Використовуйте 1, щоб дозволити дію, і 0, щоб заборонити її. |
Примітка
Порядок значень в обох масивах має відповідати порядку відповідних списків дозволів. Кожен елемент масиву контролює певний дозвіл:
1— Дозвіл надано.0— Дозвіл заборонено.
Список обмежень для обов'язкового параметра **permission**
Список обмежень для permission:
1. ! can_send_messages - дозвіл надсилати текстові повідомлення, контакти, місцезнаходження та місця.
2. ! can_send_media_messages - дозвіл надсилати аудіо, документи, фото, відео, відеонотатки та голосові нотатки. Потребує can_send_messages
3. ! can_send_polls - дозвіл надсилати опитування. Потребує can_send_messages
4. ! can_send_other_messages - дозвіл надсилати анімації, ігри, стікери та використовувати вбудованих ботів. Потребує can_send_media_messages
5. ! can_add_web_page_previews - дозвіл додавати попередній перегляд веб-сторінок до повідомлень. Потребує can_send_media_messages
6. ! can_change_info - дозвіл змінювати назву чату, фото та інші налаштування. Ігнорується в публічних супергрупах.
7. ! can_invite_users - дозвіл запрошувати користувачів
8. ! can_pin_messages - дозвіл закріплювати повідомлення. Ігнорується в публічних супергрупах.
9. can_manage_topics - дозвіл створювати теми в форум-групах. Якщо використовується в групі неправильного типу, функція завершиться помилкою та поверне помилку.
Список значень для обов'язкового параметра **media_permissions**
Значення для надання дозволів, пов'язаних із медіа media_permissions:
1. can_send_audios - дозвіл надсилати аудіофайли
2. can_send_documents - дозвіл надсилати документи
3. can_send_photos - дозвіл надсилати фото
4. can_send_videos - дозвіл надсилати відео
5. can_send_video_notes - дозвіл надсилати круглі відеоповідомлення
6. can_send_voice_notes - дозвіл надсилати голосові повідомлення
Персональні обмеження Telegram для звичайних користувачів чату або для конкретних користувачів Telegram
Опис
tg_restrict_chat_member(platform_id, user_id, minutes, permission, media_permissions).
Параметри:
| Параметр | Опис |
|---|---|
| ! platform_id | Ідентифікатор чату в Telegram * |
| ! user_id | Ідентифікатор користувача в Telegram * |
| minutes | кількість хвилин, протягом яких обмеження буде активним. Якщо не встановити значення, за замовчуванням буде 3600, що дорівнює 60 годинам. Якщо встановити 0, обмеження стане постійним |
| permission | масив значень зі списку обмежень дозволів. |
| media_permissions | список значень для надання дозволів, пов'язаних із медіа |
Список обмежень для обов'язкового параметра **permission**
Список обмежень для permission:
1. ! can_send_messages - дозвіл надсилати текстові повідомлення, контакти, місцезнаходження та місця.
2. ! can_send_media_messages - дозвіл надсилати аудіо, документи, фото, відео, відеонотатки та голосові нотатки. Потребує can_send_messages
3. ! can_send_polls - дозвіл надсилати опитування. Потребує can_send_messages
4. ! can_send_other_messages - дозвіл надсилати анімації, ігри, стікери та використовувати вбудованих ботів. Потребує can_send_media_messages
5. ! can_add_web_page_previews - дозвіл додавати попередній перегляд веб-сторінок до повідомлень. Потребує can_send_media_messages
6. ! can_change_info - дозвіл змінювати назву чату, фото та інші налаштування. Ігнорується в публічних супергрупах.
7. ! can_invite_users - дозвіл запрошувати користувачів
8. ! can_pin_messages - дозвіл закріплювати повідомлення. Ігнорується в публічних супергрупах.
9. can_manage_topics - дозвіл створювати теми в форум-групах. Якщо використовується в групі неправильного типу, функція завершиться помилкою та поверне помилку.
Список значень для обов'язкового параметра **media_permissions**
Значення для надання дозволів, пов'язаних із медіа media_permissions:
1. can_send_audios - дозвіл надсилати аудіофайли
2. can_send_documents - дозвіл надсилати документи
3. can_send_photos - дозвіл надсилати фото
4. can_send_videos - дозвіл надсилати відео
5. can_send_video_notes - дозвіл надсилати круглі відеоповідомлення
6. can_send_voice_notes - дозвіл надсилати голосові повідомлення
Приклад
Приклад використання функції, де користувачеві заборонено все на 3 хвилини:

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

Приклад коду для копіювання:
permission = [0, 0, 0, 0, 0, 0, 0, 0]
tg_restrict_chat_member(-1001607137668, 473737685, 3, permission)
Як закріпити повідомлення
Опис
tg_pin_chat_message(platform_id, message_id, disable_notification)
Закріплює повідомлення в чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram. |
| message_id | ID повідомлення для закріплення. |
| disable_notification | Керує сповіщенням учасників чату про закріплене повідомлення. Встановіть 1, щоб закріпити повідомлення без звуку, або 0, щоб надіслати сповіщення. |
Примітка
Сповіщення завжди вимкнені в каналах та приватних чатах, незалежно від значення disable_notification.
Як відкріпити повідомлення
Опис
tg_unpin_chat_message(platform_id, message_id)
Відкріплює повідомлення в чаті Telegram.
Параметри
| Параметр | Опис |
|---|---|
| platform_id | ID чату Telegram. |
| message_id | ID повідомлення для відкріплення. Якщо пропущено, відкріплюється останнє закріплене повідомлення. |
Примітка
Якщо message_id не вказано, функція відкріплює останнє закріплене повідомлення на основі часу його надсилання.
Як відкріпити всі закріплені повідомлення
Опис
tg_unpin_all(platform_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
УВАГА!
Telegram має обмеження для функцій закріплення/відкріплення повідомлень.
Часові обмеження для використання **tg_pin_chat_message / tg_unpin_chat_message / tg_unpin_all **НЕ встановлюються системою MaviBot.
Якщо дозволений час для закріплення повідомлення минув, функція все одно поверне true, але Telegram не застосує зміну.
Також важливо зазначити, що закріплені повідомлення можуть залишатися в кеші, тому вони можуть не зникнути візуально одразу.
Як створити опитування в Telegram
Опис
tg_send_poll(platform_id, question, options, is_anonymous, allows_multiple_answers, reply_markup, disable_notification, protect_content, token, reply_to_message_id, message_thread_id, business_connection_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** question | запитання |
| **!** options | масив варіантів відповідей |
| is_anonymous | 1 - анонімне опитування , '' - не анонімне |
| allows_multiple_answers | 1 - доступні кілька відповідей, '' - одна відповідь |
| reply_markup | клавіатура або '' - без клавіатури |
| disable_notification | прапорець для надсилання зі звуковим сповіщенням (за замовчуванням 0) 1 – вимкнути сповіщення при отриманні, 0 – надіслати зі сповіщенням |
| protect_content | 1 для захисту від копіювання та скріншотів, '' без захисту |
| token | токен бота; якщо не вказано, використовується поточний |
| reply_to_message_id | ID цитованого повідомлення |
| message_thread_id | ID гілки (доступно для супергруп, якщо існує функціонал форуму) |
| business_connection_id | значення при підключенні бота (Business ID). Відображається в каналах. Слід вказувати, якщо використовується токен бота і повідомлення має бути надіслано через обліковий запис користувача, підключений до бота |
Важливо знати!
Примітки
-
Функція повертає відповідь від Telegram з message_id. Краще зберегти його. Використовуючи message_id, ви можете зупинити опитування за допомогою tg_stop_poll (див. опис нижче) та отримати результат.
-
Якщо користувач додає опитування в месенджері, до чату надсилається зворотний виклик:
poll_added - незмінна частина
YOUR QUESTION - текст запитання з опитування

Приклад зворотного виклику при додаванні опитування в канал

Приклад зворотного виклику при додаванні опитування в чат

Другий зворотний виклик після poll_added містить цифри - це не що інше, як ідентифікатор користувача в Telegram, який додав опитування.
При створенні опитування ботом зворотний виклик не надходить.
3. У каналі можна створювати лише анонімні опитування
Увага, рекомендується надсилати в групу лише анонімні опитування!
- Після створення опитування збережіть його ідентифікатор у змінну, щоб розуміти, на яке опитування надійшов зворотний виклик.
Приклад
Відгуки клієнтів є ключем до нашого зростання. Опитування пропонують простий спосіб зібрати ці відгуки та перетворити їх на конкретні бізнес-висновки.
Приклад коду для копіювання:
/* Example of creating a simple poll */
options = ["white", "red", "blue", "green"]
poll1 = tg_send_poll(platform_id, 'What is your favorite color?', options, 1, '', '', 1, '')
Функція для створення опитування в Telegram:

Створене опитування в Telegram

Як створити вікторину в Telegram
Опис
tg_send_quiz_poll(platform_id, question, options, explanation, correct_option_id, is_anonymous, reply_markup, parse_mode, protect_content, disable_notification, token, reply_to_message_id, message_thread_id )
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** question | запитання |
| **!** options | масив варіантів відповідей |
| **!** explanation | текст, що відображається, коли користувач вибирає неправильну відповідь або натискає значок лампи в опитуванні-вікторині, 0–200 символів, не більше двох розривів рядків після аналізу сутностей. |
| **!** correct_option_id | номер правильної відповіді, нумерація з 1 |
| is_anonymous | 1 - анонімне опитування , '' - не анонімне |
| reply_markup | клавіатура або '' - без клавіатури |
| parse_mode | формат пояснення: markdown, html або '' (порожній рядок без форматування) |
| protect_content | 1 для захисту від копіювання та скріншотів, '' без захисту |
| disable_notification | прапорець для надсилання зі звуковим сповіщенням (за замовчуванням 0) 1 – вимкнути сповіщення при отриманні, 0 – надіслати зі сповіщенням |
| token | токен бота; якщо не вказано, використовується поточний |
| reply_to_message_id | ID цитованого повідомлення |
| message_thread_id | ID теми (доступно в супергрупах з активними функціями форуму) |
**Важливо знати!**
Примітки
1. Збережіть message_id
Функція API повертає відповідь Telegram, що містить message_id. Завжди зберігайте цей ID, оскільки він необхідний для:
- Завершення вікторини за допомогою функції
tg_stop_poll(див. опис нижче). - Отримання остаточних результатів.
2. Зворотний виклик poll_added
Якщо користувач додає опитування до каналу, бот отримує зворотний виклик:
-
Формат:
poll_added+ Запитання опитування - Якщо додано до групового чату: зворотний виклик також містить ID користувача Telegram, який додав опитування.
Якщо створено ботом: Зворотний виклик
poll_addedне надсилається.
3. Обмеження каналу
У каналах можна створювати лише анонімні вікторини.
4. Зворотний виклик poll_answer (Голосування користувача)
Коли користувач голосує у вікторині, надісланій у приватний чат або групу, до діалогу бота з цим клієнтом надсилається зворотний виклик:
-
Формат:
poll_answer+ ID опитування + [Індекс відповіді] -
Приклад:
poll_answer 5325838371359031648 [3] -
Примітка: нумерація відповідей починається з 0.
[3]означає, що користувач вибрав четвертий варіант відповіді.
5. Вебхук для неанонімних групових опитувань
Для неанонімних опитувань у групах, де бот є адміністратором, вебхук надсилається на кожен голос. Після його отримання бот пересилає зворотний виклик poll_answer (як у пункті 4) до свого діалогу з відповідним клієнтом.
6. Вимога активації та найкраща практика
-
Вимога: бот не може ініціювати розмову. Якщо клієнт ніколи не звертався до бота, ви не можете надіслати йому пряме повідомлення у відповідь на його голос, доки він спочатку не активує бота (наприклад, надіславши команду
/start).
Рекомендація: щоб уникнути цього обмеження, настійно рекомендується надсилати до груп лише анонімні вікторини.
7. Відстежуйте свої опитування
Одразу після створення вікторини збережіть її унікальний ID опитування у змінну. Це дозволить вам визначити, на яке саме опитування посилається вхідний зворотний виклик.
Приклад
Приклад коду для копіювання.
options = ["white", "red", "blue", "green"]
r = tg_send_quiz_poll(platform_id, "What color is a crocodile?", options, "That is the explanation", 4, '', '', '', '', 1)
Приклад: створення вікторини.

Як завершити опитування
Опис
tg_stop_poll(platform_id, message_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** message_id | ID повідомлення опитування/вікторини. Його можна отримати з вебхука |
Виклик цієї функції для завершення опитування/вікторини повертає словник, що містить остаточні результати.
Як працювати з темами в Telegram
Важливо: основна тема групи не має ID і потребує окремих функцій для роботи з нею.
Як перейменувати загальну тему групи
Опис
tg_edit_general_forum_topic(platform_id, topic_name)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** topic_name | нова назва теми |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проект використовує кількох ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад
Загальну тему групи можна змінити за допомогою функції tg_edit_general_forum_topic(). Вона потребує два обов'язкові параметри: ID чату та нову назву для теми групи:

Приклад коду для копіювання
/перейменувати чат Загальної теми/
answer = tg_edit_general_forum_topic(-1001839380031, 'General')
Як закрити Загальну тему
Опис
tg_close_general_forum_topic(platform_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад коду для копіювання
/закрити чат Загальної теми/
answer = tg_close_general_forum_topic(-1001839380031)
Як відновити раніше закриту Загальну тему
Опис
tg_reopen_general_forum_topic(platform_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад коду для копіювання
/відновити чат Загальної теми/
answer = tg_reopen_general_forum_topic(-1001839380031)
Як приховати Загальну тему
Опис
tg_hide_general_forum_topic(platform_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Чат Загальної теми можна закрити для учасників теми (вони можуть читати, але не писати) та приховати зі списку загальних чатів Telegram для нових користувачів.
Приклад коду для копіювання
/приховати чат Загальної теми/
answer = tg_hide_general_forum_topic(-1001839380031)
Як відобразити Загальну тему або відновити її видимість
Опис
tg_unhide_general_forum_topic(platform_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID теми в Telegram * |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Важливо!
Ця функція не відновлює Загальну тему; вона лише робить її видимою.
Приклад коду для копіювання
/відобразити чат Загальної теми/
answer = tg_unhide_general_forum_topic(-1001839380031)
Як створити нову тему в Telegram
Опис
tg_create_forum_topic(platform_id, name, icon, icon_color)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** name | назва нової теми |
| icon | ID емодзі, який буде встановлено для теми. Передається як рядок. Можна використовувати лише емодзі зі списку, отриманого за допомогою функції tg_get_forum_icon. |
| icon_color | колір емодзі зі списку: 7322096, 16766590, 13338331, 9367192, 16749490, 16478047. Не всі емодзі підтримують зміну кольору. |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Встановлений колір не можна змінити; колір можна призначити лише під час створення теми.
Після виконання функція поверне відповідь, що містить параметри нової теми, включаючи ID теми (необхідний для різних функцій).
Приклад коду для копіювання
Щоб створити додатковий чат теми
answer = tg_create_forum_topic(-1001839380031, 'second_bot_topic', None, 7322096)
Щоб зберегти ID створеного додаткового чату теми
answer={"ok":true,"result":{"message_thread_id":254,"name":"second_bot_topic","icon_color":7322096}}/
idtema1=answer['result']['message_thread_id']
Як редагувати тему. Як перейменувати та/або змінити емодзі для теми
Опис
tg_edit_forum_topic(platform_id, message_thread_id, name, icon)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** message_thread_id | ID додаткового чату теми |
| name | нова назва теми |
| icon | ID емодзі, який буде встановлено для теми. Передається як рядок. Можна використовувати лише емодзі зі списку, отриманого за допомогою функції tg_get_forum_icon. |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад коду для копіювання
answer = tg_edit_forum_topic(-1001839380031, 254)
Як закрити вибрану тему
Опис
Закриття теми означає переведення її в режим "тільки для читання"; писати в закритій темі заборонено.
tg_close_forum_topic(platform_id, message_thread_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** message_thread_id | ID додаткового чату теми |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад коду для копіювання
answer = tg_close_forum_topic(-1001839380031, 254)
Як відновити раніше закриту тему
Опис
tg_reopen_forum_topic(platform_id, message_thread_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** message_thread_id | ID додаткового чату теми |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад коду для копіювання
answer = tg_reopen_forum_topic(-1001839380031, 254)
Як видалити тему та всі її повідомлення
Опис
tg_delete_forum_topic(platform_id, message_thread_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** message_thread_id | ID додаткового чату теми |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад коду для копіювання
answer = tg_delete_forum_topic(-1001839380031, 254)
Як відкріпити всі повідомлення в темі
Опис
tg_unpin_topic_messages(platform_id, message_thread_id)
Параметри:
| Параметр | Опис |
|---|---|
| **!** platform_id | ID чату в Telegram * |
| **!** message_thread_id | ID додаткового чату теми |
| bot_name |
необов'язковий параметр: ім'я бота. Під час роботи з темами ви можете вказати, який бот має виконувати функцію. Це корисно, якщо ваш проєкт використовує кілька ботів Telegram. Знайдіть ім'я бота в розділі "Канали", у полі "ID групи". |
Приклад коду для копіювання
answer = tg_unpin_topic_messages(-1001839380031, 254)
Як отримати список емодзі для теми Telegram
Опис
Як отримати список емодзі
tg_get_forum_icon() – ця функція повертає список емодзі, доступних для використання як іконки тем форуму. Результат потрібно присвоїти змінній, оскільки вона повертає словник, де кожен ключ — це емодзі, а відповідне значення — унікальний ідентифікатор (id) емодзі.
Параметри: немає.
Вміст списку емодзі
Щоб отримати список емодзі для чату теми, надішліть команду у відповідний чат.
Функція поверне список емодзі у своїй відповіді. Це означає, що змінна answer міститиме словник як своє значення.
{'📰': '5434144690511290129', '💡': '5312536423851630001', '⚡️': '5312016608254762256', '🎙': '5377544228505134960', '🔝': '5418085807791545980', '🗣': '5368697802761185083', '🆒': '5420216386448270341', '❗️': '5379748062124056162', '📝': '5357193964787081133', '📆': '5433614043006903194', '📁': '5357315181649076022', '🔎': '5309965701241379366', '📣': '5309984423003823246', '🔥': '5312241539987020022', '❤️': '5312138559556164615', '❓': '5377316857231450742', '📈': '5350305691942788490', '📉': '5350713563512052787', '💎': '5309958691854754293', '💰': '5350452584119279096', '💸': '5309929258443874898', '\U0001fa99': '5377690785674175481', '💱': '5310107765874632305', '⁉️': '5377438129928020693', '🎮': '5309950797704865693', '💻': '5350554349074391003', '📱': '5409357944619802453', '🚗': '5312322066328853156', '🏠': '5312486108309757006', '💘': '5310029292527164639', '🎉': '5310228579009699834', '‼️': '5377498341074542641', '🏆': '5312315739842026755', '🏁': '5408906741125490282', '🎬': '5368653135101310687', '🎵': '5310045076531978942', '🔞': '5420331611830886484', '📚': '5350481781306958339', '👑': '5357107601584693888', '⚽️': '5375159220280762629', '🏀': '5384327463629233871', '📺': '5350513667144163474', '👀': '5357121491508928442', '\U0001fae6': '5357185426392096577', '🍓': '5310157398516703416', '💄': '5310262535021142850', '👠': '5368741306484925109', '✈️': '5348436127038579546', '\U0001f9f3': '5357120306097956843', '🏖': '5310303848311562896', '⛅️': '5350424168615649565', '🦄': '5413625003218313783', '🛍': '5350699789551935589', '👜': '5377478880577724584', '🛒': '5431492767249342908', '🚂': '5350497316203668441', '🛥': '5350422527938141909', '🏔': '5418196338774907917', '🏕': '5350648297189023928', '🤖': '5309832892262654231', '\U0001faa9': '5350751634102166060', '🎟': '5377624166436445368', '🏴\u200d☠️': '5386395194029515402', '🗳': '5350387571199319521', '🎓': '5357419403325481346', '🔭': '5368585403467048206', '🔬': '5377580546748588396', '🎶': '5377317729109811382', '🎤': '5382003830487523366', '🕺': '5357298525765902091', '💃': '5357370526597653193', '\U0001fa96': '5357188789351490453', '💼': '5348227245599105972', '\U0001f9ea': '5411138633765757782', '👨\u200d👩\u200d👧\u200d👦': '5386435923204382258', '👶': '5377675010259297233', '🤰': '5386609083400856174', '💅': '5368808634392257474', '🏛': '5350548830041415279', '\U0001f9ee': '5355127101970194557', '🖨': '5386379624773066504', '👮\u200d♂️': '5377494501373780436', '\U0001fa7a': '5350307998340226571', '💊': '5310094636159607472', '💉': '5310139157790596888', '\U0001f9fc': '5377468357907849200', '\U0001faaa': '5418115271267197333', '🛃': '5370947704199323325', '🍽': '5350344462612570293', '🐟': '5384574037701696503', '🎨': '5310039132297242441', '🎭': '5350658016700013471', '🎩': '5357504778685392027', '🔮': '5350367161514732241', '🍹': '5350520238444126134', '🎂': '5310132165583840589', '☕️': '5350392020785437399', '🍣': '5350406176997646350', '🍔': '5350403544182694064', '🍕': '5350444672789519765', '\U0001f9a0': '5312424913615723286', '💬': '5417915203100613993', '🎄': '5312054580060625569', '🎃': '5309744892677727325'}
Приклад коду для копіювання
answer = tg_get_forum_icon()