Bot

Base variable bot sebagai object base dari lumpia

RESUME

Resume method dan params yang dipergunakan oleh bot.

method params type keterangan
telegram   class untuk mengakses dari bot api telegram
tg     alias dari telegram
options   json akses mengubah options secara langsung
token   string set/get token
log_id   number/string set/get target id log. Shorthand untuk options.log_id
handleUpdate data json memproses data json
doPost data   memproses data POST pada function doPost
on tipe string menangkap proses event atas tipe update tertentu
start fn function handle proses command start
cmd event [string/regex] handle proses command secara umum
command event [string/regex] alias untuk cmd
hears event [string/regex] handle pesan text dari user
hear event [string/regex] alias untuk hears
use fn function mendaftarkan midleware
action fn function handle callback data
middleware fn function alias untuk use
compose fn function menambahkan function pada handler message

Penjelasan

bot

Adalah variable umum (kamu boleh menggantinya jika mau), yang berupa object gabungan segala middleware, method atau fungsi-fungsi, dan data-data penunjang lainnya.

Seperti halnya pada sistem lainnya (Ruby, Go, NodeJS, PHP, dsb), menggunakan bot sebagai variable untuk menghandlenya.

Pendeklarasian

Contohnya sebagai berikut:

const token = '123:abc';
const bot = new lumpia.init(token);

bot menjadi sebuah object sebagai perwakilan atas bot Telegram dengan ‘jiwa’ token-nya.

Token bot adalah identitasnya. Sehingga misalnya, botnya adalah belarGASbot dengan token 123:abc. Maka ketika kita coding, menyebut bot adalah si belajarGASbot nya (yang telah disambungkan dengan identias token).

Amsal

Sebagai permisalan dalam kehidupan ini, adalah sebagai berikut:

  • botfather adalah ortu yang melahirkan bot
  • Ada permintaan nama, karena belum pernah ada.. kemudian diberilah nama belajarGASBot
  • Selanjutnya mendapatkan token sebagai nomor identitas (Akta Lahir) nya.
  • bot dikalungkan token sebagai tanda peserta. Yakni di deklarasikan, diumumkan.. Wooi si bot ini adalah pengenal untuk belajarGASbot

Sehingga, menyebut bot adalah menyebut object yang telah ditentukan tersebut.

Sebagaimana manusia, bot memiliki fungsi atau istilahnya disebut method.

Kalau manusia bisa makan, minum, jalan-jalan, kencan, dan lainnya. Maka bot memiliki method untuk mengirim pesan, kirim gambar, suara, kick orang, dan lain lain.

Mengenal Method Bot

Contoh fungsi dari telegram.. yakni mengirim pesan. Maka, cara mengaksesnya adalah:

bot.telegram.sendMessage(chat_id, text)

Terdapat 3 field pada susunan diatas:

  • bot penyebutan / pemanggilan bot kita
  • telegram method atau fungsi dari/untuk/ke Telegram
  • sendMessage menjalankan fungsi untuk mengirim pesan.

Fungsi kirim pesan (sendMessage) sendiri memiliki kelengkapan minimal 2 syarat agar terkirim:

  • chat_id adalah ruangan obrolan
  • text adalah isi pesan yang akan dikirim.

Misalnya, mau berkirim pesan ke ruangan (grup) yang memiliki id -10010000001, maka:

bot.telegram.sendMessage(-10010000001, 'Halo Brok!');

maka bot akan mengirim pesan Halo Brok! ke ruangan ber kode id -10010000001.

Darimana kode ruangan (chat_id) ini berasal? Chat ID ditentukan oleh telegram. Kita tidak bisa menentukan sendiri kodenya. Namun kita bisa mengetahui ID nya dengan beberapa cara yang (insyaAllah) nanti akan dijelaskan pada halaman lainnya.

Implementasi GAS

// token bot dari bapak bot
const token = '123:abc';  

// adminbot variable untuk chat_id: boleh id kamu sendiri, boleh id grup
const adminbot = 213567634;   // ini adalah id saya, @hasanudinhs

// inisiasi bot
const bot = new lumpia.init(token);

// fungsi mengirim pesan
function sendMessage() {
  let result = bot.tg.sendMessage(adminbot, 'halo mas brok');
  Logger.log(JSON.stringify(result, null, 2));
}

Kemudian jalankan fungsi tersebut pada Google Apps Script. Cara menjalankannya, bisa disimak pada materi menjalankan fungsi.

Jika berhasil, pesan kamu akan terkirim. Dan pada program, mendapatkan log sendMessage.

Semoga penjelasan sederhana ini bisa dimengerti :-)


Method dan Params

options

Secara fungsi sama seperti options dalam inisiasi.

Namun pada bot dapat diakses secara langsung sebagai setter atau getter.

bot.options.log_id = 213567634;
bot.options.prefix_command: '.!/';
bot.options.username: 'strukturbot';

token

Use this property to get/set bot token.

bot.token = [string]

Log ID

Use this property to get/set bot options log_id.

Alias bot.options.log_id

bot.log_id = [number/string]

doPost

memproses data POST pada function doPost buil-in pada Google Apps Script

bot.doPost(e)

Param Type Description
e data data post

Contoh:

function doPost(e) {
  bot.doPost(e);
}

on

Menangkap event yang disediakan atas tangkapan ctx.broadcast

bot.on(updateTypes, fn)

Param Type Description
updateTypes string/string[] Update type
fn function function

Contoh:

bot.on('photo', ctx => console.log(ctx.photo));

hears

Menangkap dan memproses pesan yang bertipe text.

Alias: hear

bot.hears(triggers, fn)

Param Type Description
triggers string/string[]/RegEx/RegEx[] Triggers
fn function function

command

Command handling.

Alias: cmd

bot.command(commands, fn)

Param Type Description
commands string/string[] Commands
fn function function

start

Handler for /start command.

bot.start(fn)

Param Type Description
fn function function

Dapat menghandle juga beberapa kondisi sebagai berikut :

  • /start@namabot jika nama bot di-set pada parameter username saat inisiasi (lumpia.init) pada options
  • PAYLOAD dapat diakses pada ctx.payload jika terdapat data yang dikirimkan.

action

Registers for handling callback_data actions with string or regular expressions.

bot.action(triggers, fn)

Param Type Description
triggers string/string[]/RegEx/RegEx[] Triggers
fn function function

use

Register a middleware.

Alias middleware

bot.use(fn)

fn is function. With Parameters:

Param Type Description
ctx context context
next function next step