Perintah bot Telegram adalah salah satu kata kunci bergaris miring yang dipublikasikan bot agar orang bisa melihat apa yang dilakukan bot tersebut. Perintah muncul di menu di samping kotak pesan, dan definisi Telegram sendiri sederhana: "A command is a simple /keyword that tells the bot what to do."
Bagian yang perlu halaman tersendiri bukan apa itu perintah, melainkan perintah mana yang dilihat seseorang, karena hal itu ditentukan oleh aturan prioritas, bukan oleh satu daftar tunggal, dan inilah alasan umum perubahan tampak tidak berlaku.
Seperti apa bentuk perintah?
Aturan format Telegram ketat dan singkat. Perintah "must always start with the / symbol and contain up to 32 characters. They can use Latin letters, numbers and underscores, though simple lowercase text is recommended for a cleaner look."
Jadi tidak boleh ada spasi, tanda hubung, karakter beraksen, dan tidak boleh lebih dari 32 karakter termasuk kata kunci setelah garis miring. Perintah di luar aturan ini bukan perintah yang lebih pendek; itu bukan perintah sama sekali.
Tiga perintah diharapkan ada di semua bot. Telegram meminta semua pengembang mendukung /start, /help, dan /settings jika relevan, agar orang menemukan set yang konsisten di bot mana pun yang mereka buka. Memperlakukan ketiganya sebagai kata cadangan adalah kebiasaan baik meskipun bot Anda menggunakan kata yang sama untuk hal lain.
Bagaimana cara menyetel perintah?
Ada dua cara, dan keduanya mengubah daftar dasar yang sama.
Anda bisa menyetelnya secara percakapan melalui @BotFather milik Telegram, yang merupakan cara umum saat membangun bot. Atau Anda bisa menyetelnya dari kode dengan metode Bot API setMyCommands, yang menerima daftar sebagai array, menampung maksimal 100 perintah, dan menerima scope opsional yang "Defaults to BotCommandScopeDefault".
Jalur API adalah yang sebaiknya digunakan begitu ada bagian perintah yang bergantung pada kondisi, karena bisa dipanggil setiap kali kondisi berubah, bukan hanya saat seseorang ingat untuk melakukannya.
Mengapa daftar perintah saya tidak berubah?
Karena scope tidak digabung, dan daftar yang lebih sempit yang Anda setel sebelumnya masih menang.
Model Telegram adalah bahwa bot "is able to show different commands to different users and groups", dikendalikan oleh scope, yang jumlahnya tujuh:
BotCommandScopeDefaultBotCommandScopeAllPrivateChatsBotCommandScopeAllGroupChatsBotCommandScopeAllChatAdministratorsBotCommandScopeChatBotCommandScopeChatAdministratorsBotCommandScopeChatMember
Dan aturan resolusinya adalah satu kalimat dalam dokumentasi Telegram, di bawah "Determining list of commands": "The first list of commands which is set is returned."
Itulah jawaban lengkap untuk keluhan paling umum. Daftar tidak digabung. Telegram menelusuri urutan dari scope paling spesifik ke paling umum, dan berhenti di scope pertama yang disetel.
Dalam chat pribadi dengan bot, urutan yang ditelusuri Telegram adalah: botCommandScopeChat dengan language_code yang cocok, lalu botCommandScopeChat, lalu botCommandScopeAllPrivateChats dengan kode bahasa, lalu botCommandScopeAllPrivateChats, lalu botCommandScopeDefault dengan kode bahasa, lalu botCommandScopeDefault.
Dalam grup dan supergrup, urutannya lebih panjang, dimulai dari botCommandScopeChatMember melalui scope khusus administrator dan botCommandScopeAllGroupChats sebelum mencapai default.
Satu hal terbalik di antara keduanya, dan inilah jebakannya. Dalam chat pribadi, botCommandScopeChat adalah scope paling spesifik. Dalam grup, tidak: baik botCommandScopeChatAdministrators maupun varian bahasanya berada di atasnya, sehingga daftar administrator yang Anda setel sekali mengalahkan daftar per-chat untuk orang-orang tersebut, justru di tempat Anda mengharapkan per-chat yang menang.
Jadi jika Anda menyetel daftar per-chat saat pengujian lalu mengubah default, chat tersebut tetap menampilkan daftar lama selamanya. Solusinya adalah menghapus scope yang lebih sempit, bukan terus mengedit scope yang lebih luas, dan hal yang sama berlaku untuk varian language_code, yang berada di atas scope-nya sendiri dalam urutan.
Apa yang sebaiknya saya lakukan?
Tiga kebiasaan berikut mengikuti aturan prioritas.
- Setel scope default terlebih dahulu dan ubah paling akhir. Scope ini adalah fallback yang dijangkau semua orang ketika tidak ada scope yang lebih sempit, jadi ini adalah daftar yang dilihat sebagian besar pengguna Anda.
- Gunakan scope sempit dengan sengaja, bukan demi kemudahan. Apa pun yang Anda setel di level chat atau anggota tidak terlihat oleh Anda setelahnya kecuali Anda mencarinya, dan secara diam-diam menimpa semua yang lebih luas.
- Ketika daftar tampak usang, periksa semua scope, jangan hanya menyetel ulang scope yang Anda edit. Scope yang menang biasanya bukan scope yang selama ini Anda ubah.
Apakah Bird mendukung Telegram?
Untuk kode verifikasi, ya, dan bukan untuk apa pun yang dijelaskan di halaman ini.
Bird Verify mengirimkan kode verifikasi sekali pakai melalui Telegram di samping email, SMS, dan WhatsApp, menggunakan akun notifikasi terverifikasi milik Telegram, bukan bot yang Anda jalankan. Itu adalah mekanisme berbeda dari bot dengan menu perintah: tidak ada bot yang perlu didaftarkan, tidak ada perintah yang perlu dipublikasikan, dan tidak ada yang dibahas di halaman ini yang berlaku untuk itu. Jika pengiriman kode verifikasi yang membawa Anda ke sini, Bird Verify membahas kanal-kanalnya dan cara fallback-nya.
Semua yang di atas adalah perilaku platform Telegram sendiri. Panduan fitur bot dan referensi Bot API mereka adalah sumbernya dan tempat untuk memeriksa perubahan.
Singkatnya
Perintah adalah kata kunci bergaris miring yang diiklankan bot.
Perintah dimulai dengan garis miring, maksimal 32 karakter, dan hanya menggunakan huruf Latin, angka, serta garis bawah.
Tiga perintah diharapkan ada di setiap bot.
Telegram meminta pengembang mendukung
/start,/help, dan/settingsjika relevan, agar orang menemukan tiga perintah yang sama di mana pun.Scope menentukan siapa melihat daftar yang mana.
Ada tujuh scope, dari default global hingga satu anggota tertentu di satu chat tertentu.
Scope pertama yang disetel langsung menang.
Daftar tidak digabung. Scope sempit yang disetel sekali menyembunyikan daftar yang lebih luas dari audiens tersebut sampai Anda menghapusnya.