tg_client WebSocket Docs: Domain Core Reference
← Назад до розділів |
Workflow (загальний)
- Frontend підключається до
/ws/chats/.
- Надсилає
{"action":"open_client","userbot_id":...} для старту слухача подій.
- Надсилає команди (
open_dialog, send_message, ...).
- Consumer публікує їх у Redis канал
tg_commands.
- Listener виконує TDLib методи і публікує відповіді в
tg_commands:{ws_connection_id}.
- Live updates публікуються окремо в
tg_updates:{userbot_id}, а media_ready — в tg_media:{ws_connection_id}.
- Consumer повертає WS-події клієнту:
message, dialog_end, send_message, *_error, media_ready.
Формат запиту: завжди містить action + зазвичай userbot_id.
Client Session
| Action | Що приймає | Що повертає | Що робить |
open_client |
userbot_id |
Починає стрім подій у цей WS (початково connected) |
Підписує consumer на tg_updates:{userbot_id} для вказаного userbot і тримає окремі канали tg_commands:{ws_connection_id} та tg_media:{ws_connection_id} для цього WS. |
get_active_sessions |
userbot_id |
get_active_sessions / get_active_sessions_error |
Повертає активні Telegram-сесії поточного акаунта. У відповіді є sessions, current_session, other_sessions, count і inactive_session_ttl_days. Також приймається alias get_sessions. |
terminate_session |
userbot_id, session_id |
terminate_session / terminate_session_error |
Завершує конкретну Telegram-сесію за session_id. Також приймається alias delete_session. |
set_session_settings |
userbot_id, session_id, опц. can_accept_calls, can_accept_secret_chats |
set_session_settings / set_session_settings_error |
Оновлює налаштування конкретної сесії. Можна окремо перемикати прийом дзвінків і нових secret chats. Потрібно передати хоча б одне поле. Також приймається alias update_session_settings. |
terminate_all_other_sessions |
userbot_id |
terminate_all_other_sessions / terminate_all_other_sessions_error |
Завершує всі інші Telegram-сесії, крім поточної. Також приймається alias terminate_all_sessions. |
Приклади запитів
{
"action": "open_client",
"userbot_ids": [1,2,3]
}
{"action":"get_active_sessions","userbot_id":1}
{"action":"terminate_session","userbot_id":1,"session_id":987654321}
{"action":"set_session_settings","userbot_id":1,"session_id":987654321,"can_accept_calls":false,"can_accept_secret_chats":true}
{"action":"terminate_all_other_sessions","userbot_id":1}
Channel Commands
| Action | Що приймає | Що повертає | Що робить |
get_chats |
userbot_id, опц. chat_list |
get_chats (один батч з items[]), або get_chats_error |
Віддає список чатів з останнім повідомленням і метаданими одним батчем: count, chat_ids[], items[]. |
get_recently_opened_chats |
userbot_id, опц. limit |
get_recently_opened_chats (потік елементів чату), або get_recently_opened_chats_error |
Віддає нещодавно відкриті приватні чати (TDLib getRecentlyOpenedChats + фільтр chatTypePrivate). |
archive_chat |
userbot_id, chat_id |
archive_chat / archive_chat_error |
Переміщає чат в архів. |
unarchive_chat |
userbot_id, chat_id |
unarchive_chat / unarchive_chat_error |
Повертає чат в main list. |
pin_chat |
userbot_id, chat_id, опц. is_pinned, chat_list |
pin_chat / pin_chat_error |
Закріплює або відкріплює чат у списку. |
chat_in_folder |
userbot_id, chat_id, chat_folder_id, опц. added/removed/pin/unpin |
chat_in_folder / chat_in_folder_error |
Керує членством чату у folder list. |
create_chat_folder |
userbot_id, title (або name), опц. icon_name/icon, color_id, is_shareable, pinned_chat_ids[], included_chat_ids[], excluded_chat_ids[], флаги include_*/exclude_* |
create_chat_folder / create_chat_folder_error |
Створює нову папку чатів через TDLib createChatFolder. |
get_chats_for_chat_folder_invite_link |
userbot_id, chat_folder_id |
get_chats_for_chat_folder_invite_link / get_chats_for_chat_folder_invite_link_error |
Повертає список чатів, які можна включити в invite link папки (TDLib get_chats_for_chat_folder_invite_link). |
get_chat_folder_invite_links |
userbot_id, chat_folder_id |
get_chat_folder_invite_links / get_chat_folder_invite_links_error |
Повертає список існуючих invite links для папки (TDLib get_chat_folder_invite_links). |
create_chat_folder_invite_link |
userbot_id, chat_folder_id, опц. name, chat_ids[] (або chatIds[]) |
create_chat_folder_invite_link / create_chat_folder_invite_link_error |
Створює нове invite link для папки через TDLib create_chat_folder_invite_link. |
edit_chat_folder_invite_link |
userbot_id, chat_folder_id, invite_link, опц. name, chat_ids[] (або chatIds[]) |
edit_chat_folder_invite_link / edit_chat_folder_invite_link_error |
Редагує invite link папки через TDLib editChatFolderInviteLink. |
delete_chat_folder_invite_link |
userbot_id, chat_folder_id, invite_link |
delete_chat_folder_invite_link / delete_chat_folder_invite_link_error |
Видаляє invite link папки через TDLib deleteChatFolderInviteLink. |
delete_chat |
userbot_id, chat_id, опц. revoke, remove_from_chat_list |
delete_chat / delete_chat_error |
Очищає історію чату (і за параметрами прибирає зі списку). |
delete_channel |
userbot_id, chat_id (або channel_id як alias того ж chat id), опц. revoke, remove_from_chat_list |
delete_channel / delete_channel_error |
Видаляє канал через TDLib deleteChatHistory; бекенд додатково перевіряє, що чат є саме каналом. |
leave_chat |
userbot_id, chat_id |
leave_chat / leave_chat_error |
Вихід із групи/каналу. |
Приклади запитів
{"action":"get_chats","userbot_id":1}
{"action":"get_recently_opened_chats","userbot_id":1,"limit":20}
{"action":"archive_chat","userbot_id":1,"chat_id":"123"}
{"action":"unarchive_chat","userbot_id":1,"chat_id":"123"}
{"action":"pin_chat","userbot_id":1,"chat_id":"123","is_pinned":true,"chat_list":"chatListMain"}
{"action":"chat_in_folder","userbot_id":1,"chat_id":"123","chat_folder_id":2,"added":true,"removed":false,"pin":false,"unpin":false}
{"action":"create_chat_folder","userbot_id":1,"title":"Робота","icon_name":"Work","is_shareable":true,"included_chat_ids":[-1001234567890]}
{"action":"get_chats_for_chat_folder_invite_link","userbot_id":1,"chat_folder_id":2}
{"action":"get_chat_folder_invite_links","userbot_id":1,"chat_folder_id":2}
{"action":"create_chat_folder_invite_link","userbot_id":1,"chat_folder_id":2,"name":"Команда","chat_ids":[-1001234567890,-1009876543210]}
{"action":"edit_chat_folder_invite_link","userbot_id":1,"chat_folder_id":2,"invite_link":"https://t.me/addlist/abc","name":"Команда v2","chat_ids":[-1001234567890]}
{"action":"delete_chat_folder_invite_link","userbot_id":1,"chat_folder_id":2,"invite_link":"https://t.me/addlist/abc"}
{"action":"delete_chat","userbot_id":1,"chat_id":"123","revoke":true,"remove_from_chat_list":true}
{"action":"delete_channel","userbot_id":1,"chat_id":"-1001234567890","revoke":true,"remove_from_chat_list":true}
{"action":"leave_chat","userbot_id":1,"chat_id":"123"}
Для get_chats і get_recently_opened_chats бекенд повертає тільки metadata. Якщо фронту потрібне медіа, він окремо викликає download_file або get_custom_emoji_media.
Dialog Commands
| Action | Що приймає | Що повертає | Що робить |
open_dialog |
userbot_id, chat_id, опц. from_message_id, message_thread_id, limit, offset, center_message_id, window_before, window_after, pinned_limit |
Потік: dialog_access, message, опц. pinned_message, pagination_setup, dialog_end; або dialog_empty/dialog_error |
Завантажує історію чату/топіку, мапить у domain payload і надсилає порціями. dialog_access приходить першим і містить ефективні права поточного користувача для обмеження UI. Для окремого списку тем форуму використовуйте get_forum_topics. У message.sender.avatar приходить тільки meta фото відправника: file_id, remote_id, sizes, без авто-догрузки через media_ready. Для post/thread повідомлень може бути comments_meta з discussion_chat_id, message_thread_id, comment_count. |
get_forum_topics |
userbot_id, chat_id |
get_forum_topics / get_forum_topics_error |
Повертає окремим запитом список topic payload для forum/supergroup. Використовуйте для екрана списку тем замість побічного payload з open_dialog. |
open_comments |
userbot_id, comments_meta або discussion_chat_id + message_thread_id, опц. from_message_id, limit, offset, center_message_id, window_before, window_after, pinned_limit |
Потік: dialog_access, comments_access, message, pagination_setup, dialog_end; або dialog_empty/dialog_error |
Відкриває comments thread поста в linked discussion chat. comments_access містить ті самі ефективні права, що й dialog_access, плюс discussion_chat_id і message_thread_id для comments composer. |
search_messages_in_chat |
userbot_id, chat_id, опц. query, filter/search_filter, limit, from_message_id, offset, message_thread_id |
search_messages_in_chat / search_messages_in_chat_error |
Пошук повідомлень у чаті через TDLib searchChatMessages з підтримкою searchMessagesFilter* і поверненням повідомлень у форматі domain payload. |
search_messages_global |
userbot_id, опц. query, filter/search_filter, limit, offset_date, offset_chat_id, offset_message_id, chat_list |
search_messages_global / search_messages_global_error |
Глобальний пошук повідомлень по діалогах через TDLib searchMessages з підтримкою searchMessagesFilter* і поверненням нормалізованих message payload. |
get_chat_recent_actions |
userbot_id, chat_id, опц. query, from_event_id, limit, user_ids[], event_filters |
get_chat_recent_actions / get_chat_recent_actions_error |
“Недавні дії” (TDLib getChatEventLog) для каналу/супергрупи. Повертає сирі події логу та next_from_event_id для пагінації. Потребує прав адміністратора. |
Приклади запитів
{"action":"open_dialog","userbot_id":1,"chat_id":"123","from_message_id":"0"}
{"action":"open_dialog","userbot_id":1,"chat_id":"123","from_message_id":"987654321","limit":50,"offset":-50}
{"action":"open_dialog","userbot_id":1,"chat_id":"123","center_message_id":"987654321","window_before":20,"window_after":20}
{"action":"open_dialog","userbot_id":1,"chat_id":"123","message_thread_id":"456","limit":30,"offset":0}
{"action":"get_forum_topics","userbot_id":1,"chat_id":"-1001234567890"}
{"action":"open_comments","userbot_id":1,"comments_meta":{"discussion_chat_id":"-100999000777","message_thread_id":"9001"},"limit":50}
{"action":"open_comments","userbot_id":1,"discussion_chat_id":"-100999000777","message_thread_id":"9001","center_message_id":"987654321","window_before":20,"window_after":20}
{"action":"search_messages_in_chat","userbot_id":1,"chat_id":"123","query":"при","limit":30}
{"action":"search_messages_in_chat","userbot_id":1,"chat_id":"123","query":"","filter":"searchMessagesFilterPhotoAndVideo","limit":30}
{"action":"search_messages_in_chat","userbot_id":1,"chat_id":"123","filter":"searchMessagesFilterDocument","limit":30}
{"action":"search_messages_in_chat","userbot_id":1,"chat_id":"123","filter":"searchMessagesFilterUrl","limit":30}
{"action":"search_messages_in_chat","userbot_id":1,"chat_id":"123","filter":"searchMessagesFilterVoiceAndVideoNote","limit":30}
{"action":"search_messages_global","userbot_id":1,"query":"при","limit":30}
{"action":"search_messages_global","userbot_id":1,"filter":"searchMessagesFilterUnreadMention","limit":30}
{"action":"get_chat_recent_actions","userbot_id":1,"chat_id":"-1001234567890","limit":50}
{"action":"get_chat_recent_actions","userbot_id":1,"chat_id":"-1001234567890","from_event_id":"987654321","limit":50}
query необов'язковий: для вкладок медіа/файлів/посилань/голосових можна передавати порожній рядок.
Вкладка Недавні дії не є searchMessagesFilter*. Для неї використовуйте окрему команду get_chat_recent_actions (TDLib getChatEventLog).
Search Filters
Значення filter | Що знайде | Вкладка UI (приклад) |
searchMessagesFilterEmpty | Звичайний пошук без типового фільтра. | Усі |
searchMessagesFilterAnimation | Анімації. | Медіа |
searchMessagesFilterAudio | Аудіо. | Медіа |
searchMessagesFilterDocument | Документи/файли. | Файли |
searchMessagesFilterPhoto | Фото. | Медіа |
searchMessagesFilterVideo | Відео. | Медіа |
searchMessagesFilterVoiceNote | Voice. | Голосові |
searchMessagesFilterPhotoAndVideo | Фото + відео. | Медіа |
searchMessagesFilterUrl | Повідомлення з URL. | Посилання |
searchMessagesFilterChatPhoto | Оновлення фото чату. | Системні |
searchMessagesFilterVideoNote | Video note. | Голосові |
searchMessagesFilterVoiceAndVideoNote | Voice + video note. | Голосові |
searchMessagesFilterMention | Згадки. | Мітки |
searchMessagesFilterUnreadMention | Непрочитані згадки. | Мітки |
searchMessagesFilterUnreadReaction | Непрочитані реакції. | Мітки |
searchMessagesFilterFailedToSend | Не відправлені повідомлення. | Чернетки/помилки |
Filter Aliases
Бекенд також приймає короткі значення: media, files, links, voice, photo, video, document, url тощо.
Вкладка Групи не є окремим TDLib searchMessagesFilter*; її роблять на фронті групуванням результатів (наприклад, за album_id або датою).
comments_meta у message payload: discussion_chat_id — linked discussion chat, message_thread_id — thread поста, comment_count — кількість коментарів, якщо TDLib її віддає.
Message Commands
| Action | Що приймає | Що повертає | Що робить |
send_message |
userbot_id, chat_id, text, опц. entities, media/media_items, reply_to, options |
send_message / send_message_error |
Відправляє текст або media повідомлення в чат. Підтримує cloud media upload/send, reply і media albums через media_items. Для деталей див. Media Uploads. |
send_comment |
userbot_id, comments_meta або discussion_chat_id + message_thread_id, і той самий payload, що для send_message: text, entities, media, media_items, media_type, reply_to, reply_to_message_id, reply_markup, options, schedule_date, send_when_online, effect_id, message_effect_id, send_large_photos, тощо |
send_comment / send_comment_error |
Відправляє повідомлення в comments thread поста. Підтримує той самий набір текстових, media і send-options полів, що й send_message; різниця лише в target thread. |
edit_message |
userbot_id, chat_id, message_id, text |
edit_message / edit_message_error |
Редагує повідомлення. |
delete_messages |
userbot_id, chat_id, message_ids[], опц. revoke |
delete_messages / delete_messages_error |
Видаляє один або кілька меседжів. |
reply_message |
userbot_id, chat_id, reply_to_message_id, text |
reply_message / reply_message_error |
Відправляє reply на конкретний message. |
forward_message |
userbot_id, to_chat_ids[], from_chat_id, message_ids[], опц. send_copy/without_sender, remove_caption/without_caption, new_caption, show_caption_above_media |
forward_message / forward_message_error |
Форвардить повідомлення в один або кілька чатів. Підтримує режим “без імені відправника” і “без опису”. |
pin_message |
userbot_id, chat_id, message_id, опц. disable_notification, only_for_self |
pin_message / pin_message_error |
Закріплює message у чаті. |
unpin_message |
userbot_id, chat_id, message_id |
unpin_message / unpin_message_error |
Відкріплює message. |
set_reaction |
userbot_id, chat_id, message_id, reaction, опц. is_big, add_to_recent |
set_reaction / set_reaction_error |
Ставить реакцію на message через TDLib addMessageReaction (emoji/custom emoji/paid). |
Приклади запитів
{"action":"send_message","userbot_id":1,"chat_id":"123456","text":"Привіт","entities":[]}
{"action":"send_message","userbot_id":1,"chat_id":"222222","text":"Cross-chat reply","reply_to":{"replyToChatId":"111111","replyToMsgId":"555"}}
{"action":"send_message","userbot_id":1,"chat_id":"123456","text":"Album caption","entities":[{"offset":0,"length":5,"type":{"@type":"textEntityTypeBold"}}],"media_items":[{"type":"photo","key":"tg/outgoing/userbot_1/chat_123456/photo/one.jpg","file_name":"one.jpg"},{"type":"video","key":"tg/outgoing/userbot_1/chat_123456/video/two.mp4","file_name":"two.mp4"}],"reply_to_message_id":"555","protect_content":true}
{"action":"send_comment","userbot_id":1,"comments_meta":{"discussion_chat_id":"-100999000777","message_thread_id":"9001"},"text":"це коментар"}
{"action":"send_comment","userbot_id":1,"discussion_chat_id":"-100999000777","message_thread_id":"9001","text":"reply в comments","reply_to_message_id":"555"}
{"action":"send_comment","userbot_id":1,"discussion_chat_id":"-100999000777","message_thread_id":"9001","text":"Файл у коментарях","entities":[{"offset":0,"length":4,"type":{"@type":"textEntityTypeBold"}}],"media":{"type":"document","key":"tg/outgoing/userbot_1/chat_123/document/report.pdf","file_name":"report.pdf"},"protect_content":true}
{"type":"comments_access","userbot_id":1,"result":{"discussion_chat_id":"-100999000777","message_thread_id":"9001","can_send_messages":true,"needs_join_to_send":false,"join_to_send_messages":false,"join_by_request":false}}
{"action":"edit_message","userbot_id":1,"chat_id":"123456","message_id":"555","text":"Оновлений текст"}
{"action":"delete_messages","userbot_id":1,"chat_id":"123456","message_ids":["555","556"],"revoke":true}
{"action":"reply_message","userbot_id":1,"chat_id":"123456","reply_to_message_id":"555","text":"Відповідь"}
{"action":"forward_message","userbot_id":1,"to_chat_ids":["111","222"],"from_chat_id":"123456","message_ids":["555"],"without_sender":true,"without_caption":true}
{"action":"pin_message","userbot_id":1,"chat_id":"123456","message_id":"555","disable_notification":false,"only_for_self":false}
{"action":"unpin_message","userbot_id":1,"chat_id":"123456","message_id":"555"}
{"action":"set_reaction","userbot_id":1,"chat_id":"123456","message_id":"555","reaction":{"type":"emoji","emoji":"🔥"},"is_big":false,"add_to_recent":true}
{"action":"set_reaction","userbot_id":1,"chat_id":"123456","message_id":"555","reaction":{"type":"custom_emoji","custom_emoji_id":"5393021912655030923"}}
Media Commands
| Action | Що приймає | Що повертає | Що робить |
download_file |
userbot_id, file_id, опц. source, chat_id, msg_id, message_thread_id, extra |
download_file (ack), далі media_ready; або download_file_error |
Запускає ручне завантаження файлу. Після готовності надсилає шлях/мета в media_ready. |
get_prem_path |
userbot_id, emoji_id |
get_prem_path / get_prem_path_error |
Повертає asset для premium/custom emoji. |
get_custom_emoji_media |
userbot_id, custom_emoji_ids[], опц. request_id |
get_custom_emoji_media (ack), далі media_ready; або get_custom_emoji_media_error |
Приймає масив custom emoji id, запускає їх завантаження і поступово надсилає окремі media_ready по кожному emoji. Використовуйте для видимих emoji зі sticker pack. |
get_recent_stickers |
userbot_id, опц. is_attached |
get_recent_stickers / get_recent_stickers_error |
Повертає нещодавні стікери через TDLib getRecentStickers. |
get_stickers_pack |
userbot_id, опц. query, limit, offset, with_lottie |
get_stickers_pack / get_stickers_pack_error |
Повертає згруповані паки емоджі/стікерів (включно з premium/recommended). Для visible custom emoji викликайте get_custom_emoji_media по items[].emoji_id, для regular stickers — download_file по items[].remote_id. Якщо with_lottie=true, asset-и custom emoji повертаються одразу в item. |
Приклади запитів
{"action":"download_file","userbot_id":1,"file_id":123456,"source":"dialogs","chat_id":"123456","msg_id":"555","message_thread_id":"456","extra":{"kind":"manual"}}
{"action":"get_prem_path","userbot_id":1,"emoji_id":"5393021912655030923"}
{"action":"get_custom_emoji_media","userbot_id":1,"custom_emoji_ids":["5393021912655030923","5393021912655030924"],"request_id":"visible-stickers"}
{"action":"get_recent_stickers","userbot_id":1,"is_attached":false}
{"action":"get_stickers_pack","userbot_id":1,"query":"","limit":20,"offset":0,"with_lottie":false}
Подія media_ready
media_ready — асинхронна WS-подія, яка приходить окремо від основної відповіді, коли бекенд вже підготував медіа і може віддати URL або asset.
{"userbot_id":1,"type":"media_ready","result":{...}}
Варіант 1: файл
{"userbot_id":1,"type":"media_ready","result":{"file_id":123456,"path":"https://...","kind":"avatar","remote_unique_id":"AQAD...","chat_id":"-1001234567890","msg_id":"555"}}
Базові поля: file_id, path, kind. Додатково можуть приходити remote_unique_id, chat_id, msg_id, user_id, message_thread_id, album_id, preview_index, preview_kind, preview_media_type, preview_type, preview_for_file_id, preview_for_file_format, preview_for_file_size, waveform, sticker_format, emoji, source.
Варіант 2: premium/custom emoji
{"userbot_id":1,"type":"media_ready","result":{"emoji_id":"5393021912655030923","kind":"custom_emoji","file_id":987654,"path":"https://...","emoji_webm":"https://...","is_lottie":false,"source":"custom_emoji_batch","request_id":"composer-emoji-pack","batch_index":1,"batch_total":2}}
Для custom emoji приходять emoji_id, kind=custom_emoji і або path/emoji_json_url з is_lottie=true, або path/emoji_webm з is_lottie=false. Додатково можливі file_id, chat_id, msg_id, message_thread_id, source, request_id, batch_index, batch_total.
Порядок завантаження: медіа вантажиться тільки явною командою фронта. Для файлів спочатку перевіряється кеш/клауд, і тільки потім йде догрузка з TG. Поле path у media_ready — це URL на об'єкт у клауді; для public emoji/sticker bucket він може бути стабільним публічним URL, а для інших media — presigned URL.
Коли приходить:
download_file — після ручного завантаження файлу;
get_chats і get_recently_opened_chats — тільки для аватарок і preview;
search_messages_in_chat і search_messages_global — тільки для аватарок і preview;
open_dialog — для повного медіа та premium/custom emoji;
get_custom_emoji_media — для пакетного завантаження custom emoji по масиву id, зокрема для видимих елементів зі sticker pack;
User / Chat Profiles / Contacts
| Action | Що приймає | Що повертає | Що робить |
search_user |
userbot_id, username |
search_user / search_user_error |
Пошук публічного чату/юзера за username. Підтримує і durov, і @durov. |
search_chats_global |
userbot_id, query (або title/username), опц. limit |
search_chats_global / search_chats_global_error |
Глобальний пошук чатів по title і username через TDLib searchChats, searchChatsOnServer і searchPublicChats. Повертає масив items у форматі chat-list. |
create_private_chat |
userbot_id, user_id (або tg_user_id), опц. force |
create_private_chat / create_private_chat_error |
Створює або повертає приватний чат через TDLib createPrivateChat. Повернений chat_id використовуйте далі в open_dialog. |
create_supergroup_chat |
userbot_id, title, опц. is_channel, description |
create_supergroup_chat / create_supergroup_chat_error |
Створює нову групу або канал через TDLib createNewSupergroupChat. Якщо is_channel=true, буде створено канал. |
get_user |
userbot_id, user_id |
get_user / get_user_error |
Повертає розширений профіль користувача: базові поля user, нормалізований parsed_status/last_seen, profile_photo і full_info. |
get_chat_profile |
userbot_id, chat_id |
get_chat_profile / get_chat_profile_error |
Повертає розширений профіль чату/каналу/групи: chat + chat_full_info, а також supergroup/basic_group (коли доступно), і profile_photo. |
set_name |
userbot_id, first_name, опц. last_name (або full_name/name) |
set_name / set_name_error |
Змінює імʼя/прізвище поточного акаунта через TDLib setName. |
set_bio |
userbot_id, bio (або about) |
set_bio / set_bio_error |
Оновлює bio (About) поточного акаунта через TDLib setBio. Порожній рядок очищає bio. |
set_username |
userbot_id, username |
set_username / set_username_error |
Оновлює @username поточного акаунта через TDLib setUsername. Порожній рядок прибирає username. |
set_birthdate |
userbot_id, day, month, опц. year (або birthdate обʼєкт / null, опц. clear) |
set_birthdate / set_birthdate_error |
Оновлює день народження поточного акаунта через TDLib setBirthdate. Якщо рік не передано, використовується 0 (рік прихований). Для очищення дати передайте birthdate: null (або clear: true). |
set_chat_title |
userbot_id, chat_id, title |
set_chat_title / set_chat_title_error |
Змінює назву чату/каналу через TDLib setChatTitle. |
set_chat_description |
userbot_id, chat_id, description |
set_chat_description / set_chat_description_error |
Змінює опис чату/каналу через TDLib setChatDescription. |
set_chat_permissions |
userbot_id, chat_id, permissions |
set_chat_permissions / set_chat_permissions_error |
Змінює загальні дозволи учасників чату через TDLib setChatPermissions. Підтримує частковий payload і alias полів (can_send_messages, can_add_web_page_previews, can_manage_topics). |
check_chat_username |
userbot_id, chat_id, username |
check_chat_username / check_chat_username_error |
Перевіряє username для чату/каналу через TDLib checkChatUsername. |
set_supergroup_username |
userbot_id, chat_id (або supergroup_id), username |
set_supergroup_username / set_supergroup_username_error |
Змінює @username каналу/супергрупи через TDLib setSupergroupUsername. Порожній рядок робить чат приватним. |
toggle_chat_has_protected_content |
userbot_id, chat_id, has_protected_content |
toggle_chat_has_protected_content / toggle_chat_has_protected_content_error |
Вмикає/вимикає захист контенту (копіювання/пересилання) через TDLib toggleChatHasProtectedContent. |
set_chat_slow_mode_delay |
userbot_id, chat_id, slow_mode_delay (або delay) |
set_chat_slow_mode_delay / set_chat_slow_mode_delay_error |
Керує “повільним режимом” у чаті через TDLib setChatSlowModeDelay. 0 вимикає slow mode. |
set_chat_direct_messages_group |
userbot_id, chat_id, is_enabled, опц. paid_message_star_count (або star_count) |
set_chat_direct_messages_group / set_chat_direct_messages_group_error |
Керує блоком “Приймати повідомлення” в каналі через TDLib setChatDirectMessagesGroup: вмикає/вимикає прийом повідомлень і задає ціну в Stars за повідомлення. |
set_chat_discussion_group |
userbot_id, chat_id, discussion_chat_id |
set_chat_discussion_group / set_chat_discussion_group_error |
Прив’язує або відв’язує групу обговорення каналу через TDLib setChatDiscussionGroup. Для відв’язки передайте discussion_chat_id=0. |
get_suitable_discussion_chats |
userbot_id |
get_suitable_discussion_chats / get_suitable_discussion_chats_error |
Повертає список чатів, які підходять для прив’язки як група обговорення, через TDLib getSuitableDiscussionChats. |
get_suitable_personal_chats |
userbot_id |
get_suitable_personal_chats / get_suitable_personal_chats_error |
Повертає список каналів, які можна вибрати як “особистий канал”, через TDLib getSuitablePersonalChats. |
set_personal_chat |
userbot_id, chat_id |
set_personal_chat / set_personal_chat_error |
Встановлює канал як “особистий канал” через TDLib setPersonalChat. У відповіді додається item, зібраний через build_chat_item. |
hide_personal_chat |
userbot_id |
hide_personal_chat / hide_personal_chat_error |
Приховує “особистий канал” через TDLib setPersonalChat з chat_id=0. |
get_chat_members |
userbot_id, chat_id, опц. limit, offset, query, filter/member_filter |
get_chat_members / get_chat_members_error |
Повертає учасників чату з пагінацією. Для supergroup використовує getSupergroupMembers/searchChatMembers, для basic group — getBasicGroupFullInfo. |
import_contacts |
userbot_id, phone, опц. first_name, last_name, vcard, contact_user_id |
import_contacts / import_contacts_error |
Імпортує контакт через TDLib importContacts і повертає requested_contact + масив contacts з профілем для збереження на фронті. |
block_user |
userbot_id, user_id (або tg_user_id), опц. is_blocked, block_list |
block_user / block_user_error |
Блокує або розблоковує користувача через TDLib setMessageSenderBlockList. |
unblock_user |
userbot_id, user_id (або tg_user_id) |
unblock_user / unblock_user_error |
Видаляє користувача зі списку блокування через TDLib setMessageSenderBlockList з block_list=null. |
get_blocked_users |
userbot_id, опц. block_list, offset, limit |
get_blocked_users / get_blocked_users_error |
Повертає список заблокованих sender-ів через TDLib getBlockedMessageSenders з окремими масивами users і chats. |
get_privacy_setting |
userbot_id, setting (або privacy_setting) |
get_privacy_setting / get_privacy_setting_error |
Повертає поточні правила приватності для одного налаштування. Для user rules використовує TDLib getUserPrivacySettingRules, для “Повідомлення” — getNewChatPrivacySettings. |
get_privacy_settings |
userbot_id, опц. settings[] або CSV-рядок |
get_privacy_settings / get_privacy_settings_error |
Повертає набір privacy-налаштувань одним запитом (масив items + errors). |
set_privacy_setting |
userbot_id, setting, опц. mode, allow_user_ids/always_allow_user_ids, restrict_user_ids/never_allow_user_ids, allow_chat_ids, restrict_chat_ids, allow_premium_users, rules, allow_new_chats_from_unknown_users |
set_privacy_setting / set_privacy_setting_error |
Змінює privacy-правила. Підтримує базові режими (all/contacts/nobody) і винятки для користувачів/чатів, або повний масив TDLib rules. |
add_chat_member |
userbot_id, chat_id, user_id (або tg_user_id), опц. forward_limit |
add_chat_member / add_chat_member_error |
Додає користувача в чат/канал через TDLib addChatMember. Для груп може використовувати forward_limit (скільки останніх повідомлень показати новому учаснику). |
add_chat_members |
userbot_id, chat_id, user_ids[] (або userids[]) |
add_chat_members / add_chat_members_error |
Додає кількох користувачів у чат/канал через TDLib addChatMembers одним запитом. |
remove_chat_member |
userbot_id, chat_id, user_id (або tg_user_id), опц. revoke_messages |
remove_chat_member / remove_chat_member_error |
Вилучає користувача з каналу/чату через TDLib setChatMemberStatus зі статусом chatMemberStatusBanned. |
restore_chat_member |
userbot_id, chat_id, user_id (або tg_user_id) |
restore_chat_member / restore_chat_member_error |
Відновлює користувачу можливість знову приєднатись (unban) через TDLib setChatMemberStatus зі статусом chatMemberStatusLeft. Не додає назад автоматично. |
add_chat_administrator |
userbot_id, chat_id, user_id (або tg_user_id), опц. custom_title, rights, is_anonymous, can_be_edited |
add_chat_administrator / add_chat_administrator_error |
Призначає користувача адміністратором у каналі/групі через TDLib setChatMemberStatus з chatMemberStatusAdministrator. |
remove_chat_administrator |
userbot_id, chat_id, user_id (або tg_user_id) |
remove_chat_administrator / remove_chat_administrator_error |
Знімає адмінські права і повертає користувача до звичайного member через TDLib setChatMemberStatus з chatMemberStatusMember. |
transfer_chat_ownership |
userbot_id, chat_id, user_id (або tg_user_id), password (або current_password) |
transfer_chat_ownership / transfer_chat_ownership_error |
Передає право власника каналу/групи іншому адміністратору через TDLib transferChatOwnership. Потрібен пароль 2FA поточного власника. |
get_password_state |
userbot_id |
get_password_state / get_password_state_error |
Повертає стан 2FA через TDLib getPasswordState: чи увімкнений пароль, password_hint, стан recovery email. |
verify_2fa_password |
userbot_id, password (або current_password) |
verify_2fa_password / verify_2fa_password_error |
Перевіряє валідність поточного 2FA-пароля через TDLib getRecoveryEmailAddress (без зміни налаштувань). |
change_2fa_password |
userbot_id, current_password (або old_password/password), new_password, опц. new_hint, set_recovery_email_address, new_recovery_email_address |
change_2fa_password / change_2fa_password_error |
Змінює 2FA-пароль через TDLib setPassword. Повертає оновлений password_state. |
disable_2fa_password |
userbot_id, current_password (або password) |
disable_2fa_password / disable_2fa_password_error |
Вимикає 2FA-пароль через TDLib setPassword з порожнім new_password. |
change_2fa_recovery_email |
userbot_id, current_password (або password), new_recovery_email_address (або recovery_email_address/email) |
change_2fa_recovery_email / change_2fa_recovery_email_error |
Змінює recovery email для 2FA через TDLib setRecoveryEmailAddress. Якщо пошта нова, потрібне підтвердження на email. |
get_transfer_ownership_state |
userbot_id |
get_transfer_ownership_state / get_transfer_ownership_state_error |
Об’єднує перевірки TDLib getPasswordState і canTransferOwnership в один запит для UI блоку перевірки безпеки. |
toggle_supergroup_sign_messages |
userbot_id, chat_id (або supergroup_id), sign_messages, опц. show_message_sender |
toggle_supergroup_sign_messages / toggle_supergroup_sign_messages_error |
Перемикає підпис повідомлень у каналі/супергрупі через TDLib toggleSupergroupSignMessages. Якщо show_message_sender не передано, бекенд збереже поточне значення. |
toggle_supergroup_is_all_history_available |
userbot_id, chat_id (або supergroup_id), is_all_history_available |
toggle_supergroup_is_all_history_available / toggle_supergroup_is_all_history_available_error |
Керує видимістю старої історії для нових учасників у супергрупі через TDLib toggleSupergroupIsAllHistoryAvailable. |
toggle_supergroup_is_forum |
userbot_id, chat_id (або supergroup_id), is_forum |
toggle_supergroup_is_forum / toggle_supergroup_is_forum_error |
Вмикає/вимикає режим гілок (forum topics) у супергрупі через TDLib toggleSupergroupIsForum. |
check_chat_invite_link |
userbot_id, invite_link (або link/url) |
check_chat_invite_link / check_chat_invite_link_error |
Перевіряє Telegram-лінк чату. Для invite links використовує TDLib checkChatInviteLink; якщо chat_id уже відомий, бек додатково звіряє актуальну публічність через свіжий getChat. Якщо відповідь застаріла або без chat_id, бек робить best-effort refresh через searchChatsOnServer за exact title. Для публічних t.me/username або @username резолвить чат через searchPublicChat. Якщо chat_id усе одно недоступний, у відповіді повертається chat_id_unavailable_reason. |
join_chat_by_invite_link |
userbot_id, invite_link (або link/url) |
join_chat_by_invite_link / join_chat_by_invite_link_error |
Приєднує поточного користувача до чату за Telegram-посиланням. Для invite links використовує TDLib joinChatByInviteLink, для публічних t.me/username лінків резолвить чат і викликає joinChat. У відповіді повертає joined, join_request_sent, а також chat і item, якщо чат уже доступний. |
get_chat_invite_links |
userbot_id, chat_id, опц. creator_user_id, is_revoked, offset_date, offset_invite_link, limit |
get_chat_invite_links / get_chat_invite_links_error |
Повертає список запрошувальних посилань через TDLib getChatInviteLinks. Якщо creator_user_id не передано, бекенд підставляє поточного користувача через getMe. |
create_chat_invite_link |
userbot_id, chat_id, опц. name, expiration_date, member_limit, creates_join_request |
create_chat_invite_link / create_chat_invite_link_error |
Створює нове invite link через TDLib createChatInviteLink. |
create_chat_subscription_invite_link |
userbot_id, chat_id, опц. name, subscription_pricing (або subscription_period + subscription_star_count) |
create_chat_subscription_invite_link / create_chat_subscription_invite_link_error |
Створює платне invite link через TDLib createChatSubscriptionInviteLink (Stars subscription для каналу). |
edit_chat_subscription_invite_link |
userbot_id, chat_id, invite_link, опц. name |
edit_chat_subscription_invite_link / edit_chat_subscription_invite_link_error |
Редагує платне invite link через TDLib editChatSubscriptionInviteLink (назва посилання). |
edit_chat_invite_link |
userbot_id, chat_id, invite_link, опц. name, expiration_date, member_limit, creates_join_request |
edit_chat_invite_link / edit_chat_invite_link_error |
Редагує invite link через TDLib editChatInviteLink. |
revoke_chat_invite_link |
userbot_id, chat_id, invite_link |
revoke_chat_invite_link / revoke_chat_invite_link_error |
Відкликає invite link через TDLib revokeChatInviteLink. |
replace_primary_chat_invite_link |
userbot_id, chat_id |
replace_primary_chat_invite_link / replace_primary_chat_invite_link_error |
Генерує нове primary invite link через TDLib replacePrimaryChatInviteLink. |
delete_revoked_chat_invite_link |
userbot_id, chat_id, invite_link |
delete_revoked_chat_invite_link / delete_revoked_chat_invite_link_error |
Видаляє відкликане invite link зі списку через TDLib deleteRevokedChatInviteLink (якщо підтримується версією TDLib). |
delete_all_revoked_chat_invite_links |
userbot_id, chat_id, опц. creator_user_id |
delete_all_revoked_chat_invite_links / delete_all_revoked_chat_invite_links_error |
Видаляє всі відкликані invite links для одного адміністратора через TDLib deleteAllRevokedChatInviteLinks. Якщо creator_user_id не передано, бекенд підставляє поточного користувача через getMe. |
get_chat_join_requests |
userbot_id, chat_id, опц. invite_link, query, offset_request, limit |
get_chat_join_requests / get_chat_join_requests_error |
Повертає запити на вступ через TDLib getChatJoinRequests. Для пагінації можна передавати останній елемент як offset_request. |
get_chat_invite_link_members |
userbot_id, chat_id, invite_link, опц. only_with_expired_subscription, offset_member, limit |
get_chat_invite_link_members / get_chat_invite_link_members_error |
Повертає користувачів, які приєдналися за конкретним invite link, через TDLib getChatInviteLinkMembers. Для пагінації можна передавати останній елемент як offset_member. |
process_chat_join_request |
userbot_id, chat_id, user_id (або tg_user_id), опц. approve |
process_chat_join_request / process_chat_join_request_error |
Схвалює або відхиляє запит на вступ через TDLib processChatJoinRequest. |
process_chat_join_requests |
userbot_id, chat_id, опц. invite_link, approve |
process_chat_join_requests / process_chat_join_requests_error |
Схвалює або відхиляє всі заявки (або всі заявки конкретного invite link) через TDLib processChatJoinRequests. |
Приклади запитів
{"action":"search_user","userbot_id":1,"username":"@durov"}
{"action":"search_chats_global","userbot_id":1,"query":"openai","limit":20}
{"action":"create_private_chat","userbot_id":1,"user_id":777000,"force":false}
{"action":"create_supergroup_chat","userbot_id":1,"title":"Моя група","is_channel":false,"description":"Опис групи"}
{"action":"create_supergroup_chat","userbot_id":1,"title":"Мій канал","is_channel":true,"description":"Опис каналу"}
{"action":"open_dialog","userbot_id":1,"chat_id":"123456789","from_message_id":"0"}
{"action":"get_user","userbot_id":1,"user_id":"777000"}
{"action":"get_chat_profile","userbot_id":1,"chat_id":"-1001234567890"}
{"action":"set_name","userbot_id":1,"first_name":"Pavlo","last_name":"Petrenko"}
{"action":"set_name","userbot_id":1,"full_name":"Pavlo Petrenko"}
{"action":"set_bio","userbot_id":1,"bio":"Backend engineer"}
{"action":"set_bio","userbot_id":1,"bio":""}
{"action":"set_username","userbot_id":1,"username":"pavlo_dev"}
{"action":"set_username","userbot_id":1,"username":""}
{"action":"set_birthdate","userbot_id":1,"day":17,"month":5,"year":1998}
{"action":"set_birthdate","userbot_id":1,"day":17,"month":5,"year":0}
{"action":"set_birthdate","userbot_id":1,"birthdate":{"day":17,"month":5,"year":1998}}
{"action":"set_birthdate","userbot_id":1,"birthdate":null}
{"action":"set_chat_title","userbot_id":1,"chat_id":"-1001234567890","title":"Новий заголовок"}
{"action":"set_chat_description","userbot_id":1,"chat_id":"-1001234567890","description":"Новий опис"}
{"action":"set_chat_permissions","userbot_id":1,"chat_id":"-1001234567890","permissions":{"can_send_basic_messages":true,"can_send_photos":true,"can_send_videos":true,"can_send_polls":false,"can_add_link_previews":true,"can_invite_users":true}}
{"action":"check_chat_username","userbot_id":1,"chat_id":"-1001234567890","username":"my_channel"}
{"action":"set_supergroup_username","userbot_id":1,"chat_id":"-1001234567890","username":"my_channel"}
{"action":"set_supergroup_username","userbot_id":1,"chat_id":"-1001234567890","username":""}
{"action":"toggle_chat_has_protected_content","userbot_id":1,"chat_id":"-1001234567890","has_protected_content":true}
{"action":"set_chat_slow_mode_delay","userbot_id":1,"chat_id":"-1001234567890","slow_mode_delay":60}
{"action":"set_chat_slow_mode_delay","userbot_id":1,"chat_id":"-1001234567890","slow_mode_delay":0}
{"action":"set_chat_direct_messages_group","userbot_id":1,"chat_id":"-1001234567890","is_enabled":true,"paid_message_star_count":0}
{"action":"set_chat_direct_messages_group","userbot_id":1,"chat_id":"-1001234567890","is_enabled":true,"paid_message_star_count":100}
{"action":"set_chat_direct_messages_group","userbot_id":1,"chat_id":"-1001234567890","is_enabled":false,"paid_message_star_count":0}
{"action":"set_chat_discussion_group","userbot_id":1,"chat_id":"-1001234567890","discussion_chat_id":"-1009876543210"}
{"action":"set_chat_discussion_group","userbot_id":1,"chat_id":"-1001234567890","discussion_chat_id":0}
{"action":"get_suitable_discussion_chats","userbot_id":1}
{"action":"get_suitable_personal_chats","userbot_id":1}
{"action":"set_personal_chat","userbot_id":1,"chat_id":"-1001234567890"}
{"action":"hide_personal_chat","userbot_id":1}
{"action":"get_chat_members","userbot_id":1,"chat_id":"-1001234567890","limit":30,"offset":0,"filter":"recent"}
{"action":"get_chat_members","userbot_id":1,"chat_id":"-1001234567890","limit":30,"query":"andrey","filter":"members"}
{"action":"get_chat_members","userbot_id":1,"chat_id":"-1001234567890","limit":30,"offset":0,"filter":"admins"}
{"action":"get_chat_members","userbot_id":1,"chat_id":"-1001234567890","limit":30,"offset":0,"filter":"blocked"}
{"action":"import_contacts","userbot_id":1,"phone":"+380991112233","first_name":"Ivan","last_name":"Petrenko","vcard":"","contact_user_id":0}
{"action":"block_user","userbot_id":1,"user_id":777000,"is_blocked":true}
{"action":"block_user","userbot_id":1,"user_id":777000,"is_blocked":false}
{"action":"unblock_user","userbot_id":1,"user_id":777000}
{"action":"get_blocked_users","userbot_id":1,"offset":0,"limit":50}
{"action":"get_privacy_setting","userbot_id":1,"setting":"last_seen"}
{"action":"get_privacy_settings","userbot_id":1,"settings":["phone_number","last_seen","groups_and_channels","calls","profile_photo","bio","gifts","birthdate","forwarded_messages","voice_messages","messages"]}
{"action":"set_privacy_setting","userbot_id":1,"setting":"last_seen","mode":"nobody","always_allow_user_ids":[777000,123456789],"never_allow_user_ids":[987654321]}
{"action":"set_privacy_setting","userbot_id":1,"setting":"groups_and_channels","mode":"contacts","allow_chat_ids":[-1001234567890]}
{"action":"set_privacy_setting","userbot_id":1,"setting":"messages","allow_new_chats_from_unknown_users":true}
{"action":"add_chat_member","userbot_id":1,"chat_id":"-1001234567890","user_id":777000,"forward_limit":0}
{"action":"add_chat_members","userbot_id":1,"chat_id":"-1001234567890","user_ids":[777000,123456789]}
{"action":"remove_chat_member","userbot_id":1,"chat_id":"-1001234567890","user_id":777000,"revoke_messages":false}
{"action":"restore_chat_member","userbot_id":1,"chat_id":"-1001234567890","user_id":777000}
{"action":"add_chat_administrator","userbot_id":1,"chat_id":"-1001234567890","user_id":777000,"custom_title":"Модератор"}
{"action":"add_chat_administrator","userbot_id":1,"chat_id":"-1001234567890","user_id":777000,"rights":{"can_delete_messages":true,"can_invite_users":true,"can_manage_chat":true}}
{"action":"remove_chat_administrator","userbot_id":1,"chat_id":"-1001234567890","user_id":777000}
{"action":"transfer_chat_ownership","userbot_id":1,"chat_id":"-1001234567890","user_id":777000,"password":"your_2fa_password"}
{"action":"get_password_state","userbot_id":1}
{"action":"verify_2fa_password","userbot_id":1,"password":"current_2fa_password"}
{"action":"change_2fa_password","userbot_id":1,"current_password":"current_2fa_password","new_password":"new_2fa_password","new_hint":"My hint"}
{"action":"change_2fa_password","userbot_id":1,"current_password":"current_2fa_password","new_password":"new_2fa_password","new_hint":"My hint","set_recovery_email_address":true,"new_recovery_email_address":"me@example.com"}
{"action":"disable_2fa_password","userbot_id":1,"current_password":"current_2fa_password"}
{"action":"change_2fa_recovery_email","userbot_id":1,"current_password":"current_2fa_password","new_recovery_email_address":"new@example.com"}
{"action":"get_transfer_ownership_state","userbot_id":1}
{"action":"toggle_supergroup_sign_messages","userbot_id":1,"chat_id":"-1001234567890","sign_messages":true}
{"action":"toggle_supergroup_sign_messages","userbot_id":1,"chat_id":"-1001234567890","sign_messages":true,"show_message_sender":true}
{"action":"toggle_supergroup_is_all_history_available","userbot_id":1,"chat_id":"-1001234567890","is_all_history_available":true}
{"action":"toggle_supergroup_is_forum","userbot_id":1,"chat_id":"-1001234567890","is_forum":true}
{"action":"toggle_supergroup_is_forum","userbot_id":1,"chat_id":"-1001234567890","is_forum":false}
{"action":"check_chat_invite_link","userbot_id":1,"invite_link":"https://t.me/+abc"}
{"action":"join_chat_by_invite_link","userbot_id":1,"invite_link":"https://t.me/+abc"}
{"action":"join_chat_by_invite_link","userbot_id":1,"link":"https://t.me/my_public_channel"}
{"action":"get_chat_invite_links","userbot_id":1,"chat_id":"-1001234567890","is_revoked":false,"limit":50}
{"action":"create_chat_invite_link","userbot_id":1,"chat_id":"-1001234567890","name":"Ads A","expiration_date":0,"member_limit":0,"creates_join_request":false}
{"action":"create_chat_subscription_invite_link","userbot_id":1,"chat_id":"-1001234567890","name":"Paid 30d","subscription_pricing":{"period":2592000,"star_count":100}}
{"action":"edit_chat_subscription_invite_link","userbot_id":1,"chat_id":"-1001234567890","invite_link":"https://t.me/+paid_abc","name":"Paid 30d (new name)"}
{"action":"edit_chat_invite_link","userbot_id":1,"chat_id":"-1001234567890","invite_link":"https://t.me/+abc","name":"Ads A v2","member_limit":100}
{"action":"revoke_chat_invite_link","userbot_id":1,"chat_id":"-1001234567890","invite_link":"https://t.me/+abc"}
{"action":"replace_primary_chat_invite_link","userbot_id":1,"chat_id":"-1001234567890"}
{"action":"delete_revoked_chat_invite_link","userbot_id":1,"chat_id":"-1001234567890","invite_link":"https://t.me/+abc"}
{"action":"delete_all_revoked_chat_invite_links","userbot_id":1,"chat_id":"-1001234567890","creator_user_id":777000}
{"action":"get_chat_join_requests","userbot_id":1,"chat_id":"-1001234567890","invite_link":"","query":"","limit":50}
{"action":"get_chat_invite_link_members","userbot_id":1,"chat_id":"-1001234567890","invite_link":"https://t.me/+abc","only_with_expired_subscription":false,"limit":50}
{"action":"process_chat_join_request","userbot_id":1,"chat_id":"-1001234567890","user_id":777000,"approve":true}
{"action":"process_chat_join_requests","userbot_id":1,"chat_id":"-1001234567890","invite_link":"","approve":true}
{"action":"process_chat_join_requests","userbot_id":1,"chat_id":"-1001234567890","invite_link":"","approve":false}
Profile Responses (скорочено)
Фільтри для get_chat_members: recent, members, admins, contacts, bots, mentions, restricted, banned. Також підтримуються alias-и blocked/blocked_users (мапляться на banned). Можна передавати й оригінальні TDLib типи.
Privacy aliases для setting: phone_number, last_seen, groups_and_channels, calls, profile_photo, bio, gifts, birthdate, forwarded_messages, saved_music, saved_messages, voice_messages, messages. Режими: all, contacts, nobody. Для user exceptions використовуйте allow_user_ids/restrict_user_ids або alias-и always_allow_user_ids/never_allow_user_ids.
Frontend: Profile Data Permissions
Для get_chat_profile фронт орієнтується на result.permissions.
Якщо прапорець false, відповідну дію в UI треба блокувати або ховати.
| Поле | Що дозволяє | Що робити на фронті |
can_send_basic_messages |
Надсилання тексту. |
Блокувати composer (text input + send). |
can_send_photos |
Надсилання фото. |
Вимикати кнопку фото/галереї. |
can_send_videos |
Надсилання відео. |
Вимикати кнопку відео. |
can_send_audios |
Надсилання аудіо/музики. |
Вимикати кнопку audio upload. |
can_send_voice_notes |
Надсилання voice messages. |
Ховати/блокувати мікрофон. |
can_send_video_notes |
Надсилання video notes (round video). |
Ховати/блокувати кнопку video note. |
can_send_documents |
Надсилання файлів/документів. |
Вимикати file picker. |
can_send_polls |
Створення опитувань. |
Ховати кнопку poll. |
can_send_other_messages |
GIF/sticker/animated emoji/інші не-текстові типи. |
Вимикати sticker/GIF/premium reactions composer entry. |
can_add_link_previews |
Увімкнення превʼю посилань у повідомленнях. |
Вимикати toggle «show link preview». |
can_change_info |
Редагування назви/опису/аватара чату. |
Показувати/ховати кнопку edit chat profile. |
can_invite_users |
Запрошення користувачів у чат. |
Показувати/ховати invite member. |
can_pin_messages |
Закріплення повідомлень. |
Блокувати action pin_message. |
can_create_topics |
Створення тем у forum/supergroup. |
Показувати/ховати create topic. |
Додаткові поля для рішень UI
| Поле | Що означає | Вплив на фронт |
supergroup.join_to_send_messages |
Для каналу треба приєднатись, щоб писати. |
Показати CTA «Join to send messages» замість composer. |
supergroup.is_channel |
Це канал, а не група. |
Використовувати channel UI (read-only для звичайного підписника). |
has_protected_content |
Контент захищено від пересилання/копіювання. |
Обмежити forward/save actions у UI. |
notification_settings.mute_for |
Тривалість mute у секундах. |
Стан toggle mute та label «muted until ...». |
Важливо: у каналах/супергрупах permissions описують базові права учасника.
Права адміна треба брати окремо зі статусу учасника (не з цього блоку).
Frontend: Chat With Topics (повний приклад + повний опис полів)
Це приклад get_chat_profile для супергрупи з топіками
(supergroup.is_forum=true, view_as_topics=true).
Нижче наведено payload без скорочень і повну розшифровку.
Розшифровка кореневих полів chat
| Поле | Опис | Що робити на фронті |
@type | Тип обʼєкта. Для чату завжди chat. | Використовувати для type guard. |
id | Унікальний ID чату. | Ключ чату в сторі, роутингу та WS-командах. |
type | Вкладений тип чату (chatTypeSupergroup/chatTypePrivate тощо). | Перемикати шаблон UI за типом чату. |
title | Назва чату. | Показувати в header, списку чатів, breadcrumbs. |
accent_color_id | Telegram accent color для чату. | Опціонально стилізувати avatar ring/title badge. |
background_custom_emoji_id | ID custom emoji для background чату, "0" якщо відсутній. | Якщо не "0" - завантажувати відповідний decoration. |
profile_accent_color_id | Accent color профілю чату, -1 якщо дефолт. | Використовувати fallback, якщо значення -1. |
profile_background_custom_emoji_id | Custom emoji для background профілю, "0" якщо відсутній. | Якщо є emoji-id, показувати в profile header. |
permissions | Базові права учасника в чаті. | Блокувати/дозволяти дії composer/admin UI. |
positions | Позиції чату в різних списках з порядком сортування. | Використовувати для порядку чатів у sidebar. |
chat_lists | Списки, де присутній чат (main, archive, folders). | Показувати badges folder/main/archive. |
message_sender_id | Поточний sender від імені якого пише користувач у чаті. | Відображати від чийого імені йде відправка. |
has_protected_content | Контент захищений від пересилання/копіювання. | Вимикати forward/save/copy там, де потрібно. |
is_translatable | Чи підтримується переклад повідомлень чату. | Показувати/ховати кнопку translate. |
is_marked_as_unread | Чат позначено як непрочитаний вручну. | Показувати unread marker навіть без нових меседжів. |
view_as_topics | UI режим показу як список тем. | Відкривати чат у режимі topics list. |
has_scheduled_messages | Є заплановані повідомлення. | Показувати індикатор/вхід у scheduled messages. |
can_be_deleted_only_for_self | Чат можна видалити тільки локально для себе. | Текст підтвердження delete адаптувати під local-only. |
can_be_deleted_for_all_users | Чат можна видалити для всіх (залежить від типу чату і прав). | Дозволяти опцію "delete for all", якщо true. |
can_be_reported | Чат доступний для скарги. | Показувати action report. |
default_disable_notification | Дефолт надсилання без звуку в цей чат. | Початковий стан toggle silent send. |
unread_count | Кількість непрочитаних повідомлень. | Badge непрочитаних у списку чатів. |
last_read_inbox_message_id | Останній прочитаний вхідний message ID. | Обчислення read markers по вхідним. |
last_read_outbox_message_id | Останній прочитаний вихідний message ID. | Обчислення read markers по вихідним. |
unread_mention_count | Кількість непрочитаних згадок. | Показувати mention-badge окремо від unread_count. |
unread_reaction_count | Кількість непрочитаних реакцій. | Показувати reaction badge. |
notification_settings | Персональні налаштування нотифікацій для цього чату. | Ініціалізація екрана chat notifications. |
available_reactions | Політика доступних реакцій у чаті. | Обмежувати reaction picker. |
message_auto_delete_time | TTL автознищення повідомлень у секундах, 0 = вимкнено. | Показувати current auto-delete value. |
theme_name | Тема чату (якщо застосовується). | Опційно стилізувати чат або ігнорувати пусте значення. |
reply_markup_message_id | ID повідомлення з активним reply markup. | Трекати pinned keyboard / interactive markup state. |
client_data | Службове client-side поле TDLib. | Зазвичай не використовується у фронті. |
profile_photo | Фото чату з розмірами. | Avatar rendering + вибір оптимального size. |
chat_full_info | Детальна інфа чату (в цьому payload порожній обʼєкт). | Перевіряти на пустий обʼєкт перед рендером деталізації. |
supergroup | Коротка інфа супергрупи/каналу. | Визначення типу, режиму, membership та forum-стану. |
supergroup_full_info | Розширена інфа супергрупи. | Рендер блоку About/Permissions/Statistics/Commands. |
basic_group | Обʼєкт basic group, якщо чат цього типу. | Для supergroup буде null, використовувати тільки для basic groups. |
basic_group_full_info | Розширена інфа basic group. | Для supergroup буде null. |
Розшифровка permissions (повністю)
| Поле | Опис | Поточне значення | Вплив на UI |
can_send_basic_messages | Дозвіл надсилати текстові повідомлення. | true | Composer активний. |
can_send_audios | Дозвіл надсилати аудіофайли. | true | Audio upload доступний. |
can_send_documents | Дозвіл надсилати документи/файли. | true | File picker доступний. |
can_send_photos | Дозвіл надсилати фото. | true | Photo upload доступний. |
can_send_videos | Дозвіл надсилати відео. | true | Video upload доступний. |
can_send_video_notes | Дозвіл надсилати video notes. | true | Video note action доступний. |
can_send_voice_notes | Дозвіл надсилати voice notes. | true | Мікрофон доступний. |
can_send_polls | Дозвіл створювати опитування. | true | Poll action доступний. |
can_send_other_messages | Дозвіл надсилати sticker/GIF/інші типи. | true | Sticker/GIF picker доступний. |
can_add_link_previews | Дозвіл додавати preview до URL. | true | Toggle preview доступний. |
can_change_info | Дозвіл редагувати назву/опис/аватар. | false | Edit chat profile прихований. |
can_invite_users | Дозвіл запрошувати нових учасників. | true | Invite member доступний. |
can_pin_messages | Дозвіл закріплювати повідомлення. | false | Pin message action заблокований. |
can_create_topics | Дозвіл створювати нові теми. | false | Create topic action заблокований. |
Розшифровка positions і chat_lists
| Поле | Опис | Поточне значення |
positions[0].@type | Тип елемента позиції. | chatPosition |
positions[0].list.@type | Список, для якого задана позиція. | chatListMain |
positions[0].order | Порядок сортування (рядок-число). | "7608161469645737115" |
positions[0].is_pinned | Чи закріплено чат у цьому списку. | false |
chat_lists[0] | Належність до folder з ID 22. | {"@type":"chatListFolder","chat_folder_id":22} |
chat_lists[1] | Належність до folder з ID 97. | {"@type":"chatListFolder","chat_folder_id":97} |
chat_lists[2] | Належність до основного списку. | {"@type":"chatListMain"} |
Розшифровка notification_settings (повністю)
| Поле | Опис | Поточне значення | Вплив на UI |
use_default_mute_for | Використовувати глобальний mute. | false | Показувати, що застосовано локальний mute. |
mute_for | Mute duration в секундах. | 376070182 | Показувати чат як muted. |
use_default_sound | Використовувати глобальний звук. | true | Local sound picker можна ховати/дизейблити. |
sound_id | ID локального sound. | "-1" | Зазвичай дефолтний звук. |
use_default_show_preview | Використовувати глобальний show preview. | true | Preview toggle наслідує global state. |
show_preview | Локальний прапорець preview. | false | Працює лише якщо use_default_show_preview=false. |
use_default_mute_stories | Використовувати глобальний mute stories. | true | Stories mute контролюється глобальним налаштуванням. |
mute_stories | Локальний mute для stories. | false | Працює лише при use_default_mute_stories=false. |
use_default_story_sound | Використовувати глобальний звук stories. | true | Story sound picker наслідує глобальний. |
story_sound_id | ID звуку stories. | "-1" | Дефолтний story sound. |
use_default_show_story_sender | Використовувати глобальне відображення автора story. | true | Story sender visibility наслідує global. |
show_story_sender | Локальний прапорець показу автора story. | true | Працює лише якщо use_default_show_story_sender=false. |
use_default_disable_pinned_message_notifications | Використовувати глобальне правило для pinned notifications. | true | Локальний toggle pinned notifications наслідує global. |
disable_pinned_message_notifications | Вимкнення нотифікацій про pin. | false | Активний лише якщо use_default...=false. |
use_default_disable_mention_notifications | Використовувати глобальне правило для mention notifications. | true | Mention notifications наслідують global. |
disable_mention_notifications | Вимкнення нотифікацій про згадки. | false | Активний лише якщо use_default...=false. |
Розшифровка available_reactions і profile_photo
| Поле | Опис | Поточне значення |
available_reactions.@type | Режим доступних реакцій. | chatAvailableReactionsAll |
available_reactions.max_reaction_count | Максимум реакцій на повідомлення. | 11 |
profile_photo.type | Тип обʼєкта фото профілю. | profilePhoto |
profile_photo.file_id | Базовий file_id фото. | 4390 |
profile_photo.width | Базова ширина. | 160 |
profile_photo.height | Базова висота. | 160 |
profile_photo.sizes[0] | Size variant a. | {"file_id":4390,"type":"a","width":160,"height":160} |
profile_photo.sizes[1] | Size variant b. | {"file_id":4391,"type":"b","width":320,"height":320} |
profile_photo.sizes[2] | Size variant c. | {"file_id":4392,"type":"c","width":640,"height":640} |
Розшифровка supergroup (повністю)
| Поле | Опис | Поточне значення | Вплив на UI |
@type | Тип обʼєкта супергрупи. | supergroup | Type guard. |
id | ID супергрупи. | 1987658875 | Використовувати у TDLib методах супергрупи. |
usernames.@type | Тип обʼєкта usernames. | usernames | Type guard. |
usernames.active_usernames | Активні username. | ["romaniaitcommunity"] | Показати public links. |
usernames.disabled_usernames | Вимкнені username. | [] | Зазвичай не показувати в публічному UI. |
usernames.editable_username | Username, який можна редагувати власнику/адміну. | "romaniaitcommunity" | В admin UI ставити в поле editable username. |
date | Unix timestamp створення/міграції сутності. | 1755500986 | Опційно показувати "created at". |
status.@type | Статус поточного користувача в чаті. | chatMemberStatusMember | Роль користувача = member. |
status.member_until_date | До якої дати діє статус (0 = без обмеження). | 0 | Не показувати timeout membership. |
member_count | Кількість учасників. | 2048 | Показати counter. |
boost_level | Поточний boost level. | 0 | Показати/сховати boost badge. |
has_linked_chat | Чи має повʼязаний чат. | false | Linked chat section приховати. |
has_location | Чи має група геолокацію. | false | Location section приховати. |
sign_messages | Підпис повідомлень у чаті. | true | Показувати автора/підпис у повідомленнях. |
show_message_sender | Показувати sender у постах. | true | Відображати sender line у message cell. |
join_to_send_messages | Потрібно вступити, щоб писати. | true | Якщо юзер не member - CTA Join замість composer. |
join_by_request | Вступ тільки через заявку. | false | Кнопка Join без flow заявки. |
is_slow_mode_enabled | Чи активний slow mode. | false | Slow mode timer приховати. |
is_channel | Ознака каналу. | false | Це група, не канал. |
is_broadcast_group | Ознака broadcast-group. | false | Стандартний груповий UI. |
is_forum | Ознака форуму з темами. | true | Відкривати screen тем, підтримувати message_thread_id. |
has_sensitive_content | Контент 18+/sensitive. | false | Без додаткових content warnings. |
restriction_reason | Причина обмеження контенту. | "" | Порожньо - не показувати restriction alert. |
has_active_stories | Є активні stories. | false | Stories ring не показувати. |
has_unread_active_stories | Є непрочитані stories. | false | Stories unread badge не показувати. |
Розшифровка supergroup_full_info (повністю)
| Поле | Опис | Поточне значення | Вплив на UI |
@type | Тип обʼєкта. | supergroupFullInfo | Type guard. |
description | Опис чату. | "" | About-блок порожній. |
member_count | Кількість учасників. | 2048 | Показати в header/about. |
administrator_count | Кількість адміністраторів. | 0 | Admin count = 0 або приховати. |
restricted_count | Кількість restricted users. | 0 | Moderation counters. |
banned_count | Кількість забанених. | 0 | Moderation counters. |
linked_chat_id | ID повʼязаного чату. | 0 | Linked chat section приховати. |
slow_mode_delay | Інтервал slow mode (сек). | 0 | Slow mode неактивний. |
slow_mode_delay_expires_in | Залишок таймера slow mode. | 0.0 | Timer не показувати. |
can_enable_paid_reaction | Чи можна увімкнути paid reactions. | false | Paid reactions toggle заблокований. |
can_get_members | Чи можна отримати список учасників. | true | Members tab доступний. |
has_hidden_members | Чи прихований список учасників. | true | Показати обмеження видимості member list. |
can_hide_members | Чи можна керувати приховуванням members. | false | Admin control hide members недоступний. |
can_set_sticker_set | Чи можна встановити sticker set. | false | Sticker set editor недоступний. |
can_set_location | Чи можна встановити geolocation. | false | Location editor недоступний. |
can_get_statistics | Чи доступна статистика чату. | false | Statistics screen приховати. |
can_get_revenue_statistics | Чи доступна revenue статистика. | false | Revenue section приховати. |
can_get_star_revenue_statistics | Чи доступна Star revenue статистика. | false | Star revenue section приховати. |
can_toggle_aggressive_anti_spam | Чи можна керувати aggressive anti-spam. | false | Anti-spam toggle недоступний. |
is_all_history_available | Чи доступна вся історія новим учасникам. | true | Показати в about як відкриту історію. |
can_have_sponsored_messages | Чи можуть бути sponsored messages. | true | Підтримувати sponsored marker у future UI. |
has_aggressive_anti_spam_enabled | Фактичний стан aggressive anti-spam. | false | Anti-spam status = off. |
has_paid_media_allowed | Чи дозволений paid media. | false | Paid media composer actions вимкнені. |
has_pinned_stories | Чи є pinned stories. | false | Pinned stories block приховати. |
my_boost_count | Скільки бустів користувач дав чату. | 0 | Boost contribution badge = 0. |
unrestrict_boost_count | Скільки бустів треба для зняття обмежень. | 0 | Restriction boost hint не потрібен. |
sticker_set_id | ID sticker set чату. | "0" | Sticker set не заданий. |
custom_emoji_sticker_set_id | ID custom emoji sticker set. | "0" | Custom emoji set не заданий. |
bot_commands | Список команд ботів у чаті. | [{"@type":"botCommands","bot_user_id":313092884,"commands":[{"@type":"botCommand","command":"help","description":"Get list of commands"}]}] | Заповнювати slash command hints/autocomplete. |
upgraded_from_basic_group_id | ID basic group, з якої мігрували. | 0 | Міграції не було. |
upgraded_from_max_message_id | Максимальний msg id на момент міграції. | 0 | Міграції не було. |
Розшифровка bot_commands
| Поле | Опис | Поточне значення |
bot_commands[0].@type | Тип контейнера команд бота. | botCommands |
bot_commands[0].bot_user_id | User ID бота, якому належать команди. | 313092884 |
bot_commands[0].commands[0].@type | Тип обʼєкта команди. | botCommand |
bot_commands[0].commands[0].command | Slash-команда. | "help" |
bot_commands[0].commands[0].description | Опис команди. | "Get list of commands" |
Frontend: Channel Chat (is_channel=true, повний приклад + повний опис полів)
Це приклад get_chat_profile для каналу
(type.is_channel=true, supergroup.is_channel=true).
Нижче наведено повний payload і повну розшифровку для фронту.
Кореневі поля chat для channel (повністю)
| Поле | Опис | Поточне значення | Вплив на фронт |
type.is_channel | Ознака, що це канал. | true | Вмикати channel-логіку і read-only composer для неадміна. |
view_as_topics | Режим тем у чаті. | false | Відкривати звичайну стрічку, не список топіків. |
permissions | Права поточного учасника. | усі false | Повністю заблокований composer/action send. |
positions[0].list.@type | Основний список для сортування. | chatListMain | Позиція в головному списку чатів. |
chat_lists | Належність до списків/папок. | folder 97 + main | Показувати badge папки і main. |
unread_count | Непрочитані повідомлення. | 45 | Badge unread. |
unread_mention_count | Непрочитані згадки. | 0 | Mention badge відсутній. |
unread_reaction_count | Непрочитані реакції. | 0 | Reaction badge відсутній. |
notification_settings.mute_for | Локальний mute у секундах. | 376071013 | Чат має стан muted. |
available_reactions.@type | Режим реакцій. | chatAvailableReactionsSome | Показувати тільки whitelist реакцій. |
available_reactions.max_reaction_count | Максимум реакцій на меседж. | 4 | Обмежити reaction picker. |
has_protected_content | Захист від копіювання/forward. | false | Forward/save не блокувати цим прапорцем. |
profile_photo | Фото каналу. | file_id 4158 + sizes | Вибирати size за DPI/контейнером. |
chat_full_info | Детальний обʼєкт chat. | {} | Перевіряти на порожній обʼєкт перед рендером. |
permissions для channel (повністю)
| Поле | Поточне значення | Що це означає у UI |
can_send_basic_messages | false | Text composer вимкнений. |
can_send_audios | false | Audio upload вимкнений. |
can_send_documents | false | File upload вимкнений. |
can_send_photos | false | Photo upload вимкнений. |
can_send_videos | false | Video upload вимкнений. |
can_send_video_notes | false | Video notes вимкнені. |
can_send_voice_notes | false | Mic/voice вимкнений. |
can_send_polls | false | Create poll вимкнений. |
can_send_other_messages | false | GIF/sticker/emoji media вимкнені. |
can_add_link_previews | false | Link preview toggle вимкнений. |
can_change_info | false | Edit profile channel hidden/disabled. |
can_invite_users | false | Invite UI hidden/disabled. |
can_pin_messages | false | Pin action hidden/disabled. |
can_create_topics | false | Create topic hidden/disabled (канал без тем). |
supergroup для channel (повністю)
| Поле | Поточне значення | Вплив на фронт |
is_channel | true | Канал, не група. |
is_forum | false | Режим тем не використовувати. |
member_count | 11696 | Показувати subscriber count. |
boost_level | 2 | Показувати boost badge. |
has_linked_chat | true | Показувати блок linked chat. |
sign_messages | false | Автор постів як підпис не показується. |
show_message_sender | false | Sender line у пості не показувати. |
join_to_send_messages | true | Для non-member показати CTA Join. |
join_by_request | false | Join без заявки. |
is_slow_mode_enabled | false | Slow mode індикатор не показувати. |
has_sensitive_content | false | Без sensitive warning. |
restriction_reason | "" | Restriction banner не показувати. |
has_active_stories | false | Stories ring не показувати. |
has_unread_active_stories | false | Stories unread badge не показувати. |
supergroup_full_info для channel (повністю)
| Поле | Поточне значення | Вплив на фронт |
description | непорожній текст + посилання | Рендерити multi-line about з активними URL. |
linked_chat_id | -1002435456208 | Кнопка "Discuss" / перехід у linked chat. |
can_get_members | false | Members list/tab недоступний. |
has_hidden_members | true | Показати, що список підписників приховано. |
can_enable_paid_reaction | true | Admin toggle paid reactions може бути доступний. |
has_paid_media_allowed | true | Paid media можливий у цьому каналі. |
has_pinned_stories | true | Показувати блок pinned stories. |
is_all_history_available | true | Вся історія доступна. |
can_have_sponsored_messages | true | Підтримувати маркер sponsored posts. |
bot_commands | [] | Slash-command hints не показувати. |
can_get_statistics | false | Statistics розділ приховати. |
can_get_revenue_statistics | false | Revenue statistics приховати. |
can_get_star_revenue_statistics | false | Star revenue statistics приховати. |
can_toggle_aggressive_anti_spam | false | Anti-spam toggle недоступний. |
sticker_set_id | "0" | Sticker set не налаштований. |
custom_emoji_sticker_set_id | "0" | Custom emoji set не налаштований. |
Frontend: Basic Group Chat (chatTypeBasicGroup, повний приклад + повний опис полів)
Це приклад get_chat_profile для basic group
(type.@type=chatTypeBasicGroup). Нижче повний payload та повна розшифровка.
Ключові поля basic group
| Поле | Поточне значення | Що це означає для фронту |
type.@type | chatTypeBasicGroup | Рендерити group UI, не channel і не forum. |
type.basic_group_id | 232048874 | Використовувати для базових group-операцій. |
positions | [] | Позиція може братися з chat_lists/локального сортування. |
chat_lists | folder 22 + main | Показувати належність до папки і main list. |
profile_photo | null | Показувати fallback avatar з ініціалами. |
supergroup | null | Supergroup-поля не використовувати. |
basic_group | object | Основне джерело статусу/типу участі в basic group. |
basic_group_full_info | object | Джерело members/invite link/creator info. |
can_be_deleted_only_for_self | true | У delete-dialog показати локальне видалення як доступне. |
can_be_deleted_for_all_users | true | Показати "delete for all users" як доступну дію (якщо UX це підтримує). |
can_be_reported | false | Action report приховати. |
permissions для basic group (повністю)
| Поле | Поточне значення | Вплив на UI |
can_send_basic_messages | true | Text composer активний. |
can_send_audios | true | Audio upload активний. |
can_send_documents | true | File upload активний. |
can_send_photos | true | Photo upload активний. |
can_send_videos | true | Video upload активний. |
can_send_video_notes | true | Video notes активні. |
can_send_voice_notes | true | Mic/voice активний. |
can_send_polls | true | Create poll активний. |
can_send_other_messages | true | GIF/sticker/emoji media активні. |
can_add_link_previews | true | Link preview toggle активний. |
can_change_info | true | Edit group info доступний. |
can_invite_users | true | Invite users доступний. |
can_pin_messages | true | Pin message доступний. |
can_create_topics | true | Create topic UI можна показувати, якщо функція підтримується в поточній версії. |
basic_group і basic_group_full_info (повністю)
| Поле | Поточне значення | Вплив на фронт |
basic_group.id | 232048874 | Груповий ID для карток/кешу. |
basic_group.member_count | 2 | Показувати member count. |
basic_group.status.@type | chatMemberStatusCreator | Поточний користувач є creator (адмін максимум). |
basic_group.status.custom_title | "" | Кастомний admin title відсутній. |
basic_group.status.is_anonymous | false | Анонімний режим адміна вимкнений. |
basic_group.status.is_member | true | Користувач є учасником групи. |
basic_group.is_active | true | Група активна. |
basic_group.upgraded_to_supergroup_id | 0 | Не мігровано в supergroup. |
basic_group_full_info.description | "" | About секція порожня. |
basic_group_full_info.creator_user_id | 410102970 | Позначити creator у member list. |
basic_group_full_info.members | 2 members | Рендер списку учасників з ролями і датами join. |
basic_group_full_info.can_hide_members | false | Hide members control недоступний. |
basic_group_full_info.can_toggle_aggressive_anti_spam | false | Aggressive anti-spam toggle недоступний. |
basic_group_full_info.invite_link.invite_link | https://t.me/+vCoG9XuaHRs3YTAy | Показати/скопіювати primary invite link. |
basic_group_full_info.invite_link.creates_join_request | false | Join by direct invite, без заявки. |
basic_group_full_info.invite_link.is_primary | true | Це primary invite link. |
basic_group_full_info.invite_link.is_revoked | false | Посилання активне. |
basic_group_full_info.bot_commands | [] | Slash command hints не показувати. |
Окремо: якщо поточний користувач адміністратор basic group
| Як визначити | Що дозволити в UI | Що перевіряти додатково |
basic_group.status.@type у chatMemberStatusCreator або chatMemberStatusAdministrator |
Показувати admin tools: edit info, manage members, invite link management, pin messages. |
Не покладатися лише на permissions; ключова роль - це basic_group.status. |
basic_group.status.custom_title непорожній |
Показувати custom admin badge/title. |
Fallback на стандартний label "Admin", якщо поле порожнє. |
basic_group.status.is_anonymous=true |
Показувати режим анонімного адміністратора. |
Пояснити в UI, що повідомлення можуть відправлятись анонімно від групи. |
basic_group_full_info.invite_link.is_primary=true |
Показувати кнопку copy/share primary invite link. |
Якщо is_revoked=true, ховати copy і пропонувати regenerate. |
Важливо: для basic group роль користувача (member/admin/creator) визначається насамперед
через basic_group.status. Прапорці permissions описують дозволи в чаті,
але не замінюють role-based перевірку для адмінських екранів.