Manajemen Command Bot Telegram dapat dilakukan melalui Apps Script tanpa perlu lagi melibatkan BotFather. Direkomendasikan untuk sampai ke artikel ini anda sudah bisa membuat bot dengan BotFather dan menambahkan command bot dengan BotFather.
BAHAN BAKU
Untuk mengimplementasikan eksperimen ini perlu dipersiapkan beberapa hal:
- Bot Telegram berikut API Token, anda dapat menyimak cara membuatnya dan mendapatkan API Token pada artikel ini.
- Satu file Apps Script, anda bisa menyimak cara membuatnya dan deployment Web Apps di artikel ini.
- Script eksperimen ini yang dapat unduh atau salin dari repository.
Bila anda menemui kendala saat deployment silahkan simak cara penanganannya pada artikel iniSiLiKiDi
FITUR BARU COMMAND BOT 5.3
Bot API Rilis 5.3 menyebutkan fitur-fitur baru dalam Bot Telegram:
- Tampilan command bot dengan tombol biru Menu lebih terlihat di versi Telegram Mobile.
- Penambahan BotCommandScope berupa pengaturan cakupan dari command tersebut untuk berlaku di grup atau private chat, bahasa tertentu, dan user tertentu.
- Penambahan metode deleteMyCommands untuk menghapus command melalui script.
BOT COMMAND SCOPE
BotCommandScope adalah properti tambahan pada metode pengaturan command yang dapat diisi dengan cakupan-cakupan sebagai berikut:
- Memiliki atribut tambahan language_code untuk membatasi command tertentu hanya berlaku untuk user atau chat yang berbahasa tertentu saja.
- Cakupan command untuk berlaku di semua chat atau spesifik chat tertentu.
- Cakupan command untuk berlaku pada jenis private chat atau group.
Contoh penerapan dalam script akan dibahas pada artikel selanjutnya.
Bila properti ini diabaikan maka akan berlaku botCommandScopeDefault, selengkapnya lihat dokumentasi TelegramSiLiKiDi
METODE PENGATURAN COMMAND MELALUI SCRIPT
Telegram Bot API 5.3 memperkenalkan tiga metode untuk manajemen command bot:
Cara Eksekusi
Cara mengeksekusi metode tersebut melalui pengiriman HTTP GET atau POST. HTTP GET berarti anda dapat mengeksekusi langsung dengan URL di browser dengan notasi:
"https://api.telegram.org/bot" + telegramAPIToken + "/" + nama_metode
Sedangkan untuk HTTP POST dapat menggunakan UrlFetchApp.fetch( URL ) di Apps Script di mana notasi URL sama seperti yang digunakan HTTP GET.
Parameter
Setiap metode tersebut disertai parameter opsional dapat disertakan ataupun diabaikan [bila diabaikan maka akan berlaku nilai default]:
- scope: cakupan command seperti yang sudah disebutkan sebelumnya.
- language_code: dua huruf kode bahasa yang dapat dilihat di ISO 639-1.
Contoh penerapan parameter akan dibahas selanjutnya.
Sangat disarankan bila ingin menambahkan parameter lebih baik gunakan HTTP POSTSiLiKiDi
getMyCommands
getMyCommands digunakan untuk mendapatkan informasi tentang command apa saja yang terpasang pada bot. Contoh penggunaannya dengan HTTP GET:
https://api.telegram.org/bot1234567890/getMyCommands
Contoh penggunaan dengan HTTP POST berikut parameternya:
let dataCommand = {
method: "post",
payload: {
method: "getMyCommands",
scope: JSON.stringify({ "type": "default" }),
language_code: "en"
}
};
let response = UrlFetchApp.fetch(telegramAPIURL + "/", dataCommand);
Logger.log( response.getContentText() );
deleteMyCommands
deleteMyCommands digunakan untuk menghapus command yang terpasang pada bot. Contoh penggunaannya dengan HTTP GET:
https://api.telegram.org/bot1234567890/deleteMyCommands
Contoh penggunaan dengan HTTP POST berikut parameternya:
let dataCommand = {
method: "post",
payload: {
method: "deleteMyCommands",
scope: JSON.stringify({ "type": "default" }),
language_code: "en"
}
};
let response = UrlFetchApp.fetch(telegramAPIURL + "/", dataCommand);
Logger.log( response.getContentText() );
setMyCommands
setMyCommands digunakan untuk menambah command pada bot. Khusus metode ini memliki parameter tambahan commands yang berisi daftar command yang dipasangkan ke bot terdiri dari dua properti: command dan description.
Contoh penggunaan dengan HTTP POST berikut parameternya:
let dataCommand = {
method: "post",
payload: {
method: "setMyCommands",
commands: JSON.stringify([
{
"command": "start",
"description": "Command test"
},
{
"command": "hello",
"description": "Greeting message"
},
{
"command": "about",
"description": "About bot"
}
]),
scope: JSON.stringify({ "type": "default" }),
language_code: "en"
}
};
let response = UrlFetchApp.fetch(telegramAPIURL + "/", dataCommand);
Logger.log( response.getContentText() );
FINAL SCRIPT
Final Script dapat diunduh di repository.
Dapatkan skrip semua materi di repository
Dukung donasi agar tutorial ini tetap operasional:
SiLiKiDi
Komentar
Posting Komentar