Telegram-bot buyruqlari, menyu tugmasi va tavsifini sozlash
Amaliyot3 daqInnovialabs tahririyati
Qisqacha
Buyruqlar har bir hudud va til uchun alohida setMyCommands orqali, menyu tugmasi setChatMenuButton orqali beriladi, tavsif, qisqa tavsif va avatar esa foydalanuvchi Start’ni bosishdan oldin nimani ko‘rishini belgilaydi.
Qisqa javob: nima va qayerda sozlanadi
Botda bir nechta «vitrina» elementi bor, ularning har birini BotFatherda yoki Bot API orqali berish mumkin:
| Nima | Foydalanuvchi qayerda ko‘radi | BotFather | Bot API |
|---|---|---|---|
| Buyruqlar | Buyruqlar menyusi va «/» kiritilganda maslahatlar | /setcommands | setMyCommands |
| Menyu tugmasi | Kiritish maydonining chap tomonida | /mybots → Bot Settings → Menu Button | setChatMenuButton |
| Tavsif | Start bosilishidan oldingi bo‘sh chat | /setdescription | setMyDescription |
| Qisqa tavsif | Bot profili va havola prevyusi | /setabouttext | setMyShortDescription |
| Avatar | Chatlar ro‘yxati va profil | /setuserpic | — |
BotFather bir martalik sozlash uchun qulay. API esa buyruqlar til, rol yoki chat bo‘yicha farq qilganda va sozlamalar bot bilan birga kodda saqlanishi kerak bo‘lganda zarur.
Buyruqlar: setMyCommands
Buyruq — kichik lotin harflari, raqamlar va pastki chiziqlar, 32 belgigacha; tavsifi — 256 belgigacha. Ro‘yxatni qisqa tuting: haqiqatan kerak bo‘lgan 3–7 ta buyruq.
curl -X POST "https://api.telegram.org/bot<TOKEN>/setMyCommands" \
-H "Content-Type: application/json" \
-d '{
"commands": [
{"command": "start", "description": "Boshlash"},
{"command": "orders", "description": "Buyurtmalarim"},
{"command": "help", "description": "Yordam"}
],
"scope": {"type": "all_private_chats"},
"language_code": "uz"
}'
Hududlar (scope)
scope parametri turli joylarda turli buyruqlarni ko‘rsatishga imkon beradi:
default— standart holatda hamma joyda;all_private_chats— barcha shaxsiy chatlarda;all_group_chats— barcha guruhlarda;all_chat_administrators— barcha guruhlar administratorlariga;chat,chat_administrators,chat_member— aniq chat, uning administratorlari yoki aniq ishtirokchi.
Telegram mos keladigan eng aniq hududni tanlaydi. Masalan, guruhda administrator, agar berilgan bo‘lsa, chat_administratorsdagi buyruqlarni, oddiy ishtirokchi esa all_group_chats yoki defaultdagilarni ko‘radi. Bu /stats kabi xizmat buyruqlarini oddiy foydalanuvchilardan yashirishning qulay usuli.
Tillar
language_code parametri Telegram interfeysi shu tilda bo‘lgan foydalanuvchilar uchun ro‘yxatni belgilaydi. Avval language_code parametri bo‘lmagan ro‘yxat bering — u zaxira bo‘ladi, keyin ru, en, uz va boshqa kerakli tillar uchun tarjimalarni qo‘shing. Til botingiz ichidagi tanlovdan emas, ilova sozlamalaridan olinishini hisobga oling.
Menyu tugmasi
Kiritish maydoni chap tomonidagi tugma uch turda bo‘ladi:
commands— buyruqlar ro‘yxatini ochadi;web_app— Mini Appni ishga tushiradi;default— standart xatti-harakat.
{
"menu_button": {
"type": "web_app",
"text": "Katalog",
"web_app": {"url": "https://example.com/app"}
}
}
chat_idsiz setChatMenuButton barcha shaxsiy chatlar uchun standart tugmani o‘zgartiradi, chat_id bilan esa faqat aniq foydalanuvchi uchun. Bundan Mini App’ni faqat ro‘yxatdan o‘tgandan keyin ko‘rsatish uchun foydalanish mumkin. Tugma matnini qisqa va aniq qiling: «Ochish» emas, «Katalog», «Yozilish».
Tavsif va qisqa tavsif
Tavsifni (512 belgigacha) foydalanuvchi bot bilan bo‘sh chatda — Start tugmasi ustida ko‘radi. Bu bosishga ishontiradigan asosiy matn. Unda uch savolga javob bering: bot nima qiladi, nimasi foydali, Start’dan keyin nima bo‘ladi. BotFather’da tavsifga rasm yoki qisqa animatsiya qo‘shish mumkin.
Qisqa tavsif (120 belgigacha) bot profilida va botga havola ulashilganda prevyuda ko‘rinadi. Foyda haqida bitta gap.
Ikkala matn ham buyruqlar kabi language_code orqali tillar bo‘yicha beriladi. Bot nomini ham setMyName orqali lokallashtirish mumkin.
Avatar va birinchi taassurot
Start’ni bosishdan oldin foydalanuvchi nomni, avatarni, profildagi qisqa tavsifni, chatdagi rasmli tavsifni va menyu tugmasini ko‘radi. Chek-list:
- avatar kichik doirada yaxshi o‘qiladi: mayda matnsiz logotip yoki belgi;
- nom faqat brend nomini emas, bu qanday bot ekanini aytadi;
- tavsif shunchaki salomlashmaydi, foydani tushuntiradi;
- barcha matnlar auditoriyangiz tillariga tarjima qilingan;
- buyruqlar va menyu tugmasi bot haqiqatda qila oladigan narsaga mos.