Bot
5 menit dibaca
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 melahirkanbot
- Ada permintaan nama, karena belum pernah ada.. kemudian diberilah nama
belajarGASBot
- Selanjutnya mendapatkan
token
sebagai nomor identitas (Akta Lahir) nya. bot
dikalungkantoken
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 kitatelegram
method atau fungsi dari/untuk/ke TelegramsendMessage
menjalankan fungsi untuk mengirim pesan.
Fungsi kirim pesan (sendMessage) sendiri memiliki kelengkapan minimal 2 syarat agar terkirim:
chat_id
adalah ruangan obrolantext
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.
{
"ok": true,
"result": {
"message_id": 885,
"from": {
"id": 1719983221,
"is_bot": true,
"first_name": "belajarBotGas",
"username": "belajarGASbot"
},
"chat": {
"id": 213567634,
"first_name": "bangHasan",
"last_name": "HS",
"username": "hasanudinhs",
"type": "private"
},
"date": 1629863141,
"text": "halo mas brok"
}
}
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 |
use case
user: Assalamu'alaikum
bot: Waa'alaikumussalam Wr Wb
code:
bot.hears("Assalamu'alaikum", ctx => ctx.replyIt("Waa'alaikumussalam Wr Wb"));
command
Command handling.
Alias: cmd
bot.command(commands, fn)
Param | Type | Description |
---|---|---|
commands | string/string[] |
Commands |
fn | function |
function |
Use case:
user: /ping
bot: Pong!
Code:
bot.cmd("ping", ctx => ctx.reply("Pong!"));
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 parameterusername
saat inisiasi (lumpia.init
) pada options- PAYLOAD dapat diakses pada
ctx.payload
jika terdapat data yang dikirimkan.
Use case:
user: /start
bot: Hello Human!
Code:
bot.start(ctx => ctx.reply("Hello Human"));
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 |
bot.use( (ctx, next) => {
ctx.hooked = true;
// eksekusi next() untuk melanjutkan ke middleware berikutnya
next();
})