Langsung ke konten utama

Command Bot Telegram Dengan Apps Script

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:

  1. Bot Telegram berikut API Token, anda dapat menyimak cara membuatnya dan mendapatkan API Token pada artikel ini.
  2. Satu file Apps Script, anda bisa menyimak cara membuatnya dan deployment Web Apps di artikel ini.
  3. 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.
video courtesy of Telegram

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:
Trakteer Saya SiLiKiDi

Komentar

Postingan populer dari blog ini

Kirim Pesan Ke Telegram Dengan Apps Script

Dengan koneksi webhook anda bisa mulai ujicoba mengirim pesan pertama ke Telegram dari Google Apps Script.

Input User Dengan ForceReply Di Telegram

Metode ForceReply memungkinkan Bot memaksa user untuk memberikan input sebelum melanjutkan proses, dengan demikian anda dapat menggelar Step-by-Step formulir di Telegram.