Langsung ke konten utama

Meracik Script Untuk Merespon Command Bot Telegram - PART 2

Meracik script untuk custom command bot selain default command /start yang telah diracik di artikel PART 1.

Sebelumnya pada artikel Membuat Menu Command Bot Telegram telah dipraktikan cara membuat menu custom command yang terdiri dari:

  • /start - Memulai bot
  • /about - Tentang bot ini
  • /channel - Official channel informasi
  • /web - Official website
  • /facebook - Official facebook page
  • /twitter - Official twitter

MESSAGE TEXT SEBAGAI ACUAN

Telah disebutkan sebelumnya untuk mengidentifikasi apakah respon JSON yang dikirimkan Telegram mengandung command bot atau hanya teks biasa ada pada properti message.text dan entities[0].type.

Kita akan bereksperimen tanpa melibatkan properti entities[0].type yaitu cukup dengan memindai nilai dari properti message.text saja.

Tantangannya message.text merupakan input dari user yang punya kemungkinan terdapat distorsi karakter seperti tambahan spasi kosong atau typo karakter lainSiLiKiDi

MEMFILTER DENGAN REGEX

Javascript menyediakan fungsi test() yang dengan filter regular expression ini kita akan mengetahui keberadaaan command dalam message.text.

Command bot Telegram punya ciri khas selalu diawali dengan / dan berbekal ciri ini dapatlah kita filter:


/*** Periksa apakah pesan diawali dengan garis miring? ***/
if ( /^\//.test(messageText) ) {
  
  /**************************************************
  Bila ya maka isolasi command dari distorsi karakter
  Dengan memotong pesan berdasarkan spasi kosong
  Tampung ke dalam variabel messageSPLIT
  ***************************************************/
  var messageSplit = messageText.split(" ");
  
  /****************************************************
  Fungsi split() menghasilkan bentuk array
  Karena berada di awal maka dipilih elemen pertama [0]
  Lalu pindai command apakah yang ada di dalamnya
  *****************************************************/
  if ( messageSplit[0] === "/start" ) {
    
    /*** proses di sini ***/
  
  } else if ( messageSplit[0] === "/about" ) {
    
  } /*** dan seterusnya... ***/
  
}

Telegram API menyediakan banyak metode pengiriman beragam konten. Link website atau apapun akan diperlakukan sebagai pesan teks biasa jadi anda bisa menggunakan metode sendMessage untuk merespon balik berupa link web.

Pada artikel-artikel sebelumnya metode sendMessage dibuatkan fungsi custom tersendiri kirimPesan() karena penggunaannya yang berulang-ulang.


if ( messageSplit[0] === "/start" ) {
  
  kirimPesan(
    chatid,
    "Halo... " 
    + data.message.from.first_name 
    + "\n" 
    + "selamat datang di bot pertamaku."
  );
  
} else if ( messageSplit[0] === "/about" ) {
  
  kirimPesan( chatid, "BOT PERTAMAKU dibuat oleh SiLiKiDi" );
  
} else if ( messageSplit[0] === "/channel" ) {
  
  kirimPesan( chatid, "Official Channel: @rscibabat" );
  
} else if ( messageSplit[0] === "/web" ) {
  
  kirimPesan( chatid, "telegram-bot-script.blogspot.com" );
  
} else if ( messageSplit[0] === "/facebook" ) {
  
  kirimPesan( chatid, "Facebook Page: fb.me/telegrambotscript" );
  
} else if ( messageSplit[0] === "/twitter" ) {
  
  kirimPesan( chatid, "Twitter: twitter.com/silikidimi" );
    
}

Link web tidak mentolerir spasi kosong atau karakter spesial di luar standar URL encode. Bila dalam link anda terdapat spasi kosong akan dikonversi menjadi %20. Masalahnya tidak semua sistem aplikasi secara otomatis mengkonversi yang berujung pada error.

Gunakan URL encoder online untuk memastikan link anda sesuai standarSiLiKiDi

FINAL SCRIPT

Final Script dari materi ini dapat diunduh di repository:

HASIL DI TELEGRAM

Berikut hasil eksekusi di Bot Telegram ketika user menggunakan menu command:

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.