Menghubungkan Bot Telegram Dengan Gas
By Harjito
Menghubungkan Bot Telegram Dengan Gas
Hi semuanya. Kita letemu kembali di tutorial pembuatan Bot Telegram dengan GAS. Kita samapai tahapan yang ke-3, yaitu menghubungkan bot Telegram yang sudah kita buat dengan aplikasi GAS. Tidak perlupanjang kata langsung kita mulai.
Mengatur konfigurasi
- Buka Main-bot di GAS, yang sudah kita buat sebelumnya
- Sisipkan baris ini pada baris palindg atas (sebelum function request)
- Sisipkan baris ini di bawah function request (setelah kurawal tutup)
function setHook(){
const method = '/setWebhook?url=';
const result = UrlFetchApp.fetch(urlTelegram+token+method+urlAPI)
Logger.log(result)
}
- Pada bagian atas kode, di sebelah jalankan ada request, ganti dengan setHook
- Klik Jalankan
- Akan diminta ijin, klik berikan ijin
- Pilih email yang digunakan
- Akan muncul peringatan, google belum memverikasi, pilih lanjutan
- Klik Buka Main Bot (tidak aman), karena kita tahu bahwa itu aplikasi kita sendiri
- Klik Ijinkan
- Pada log akan muncul
xx:xx:xx Peringatan Eksekusi dimulai
xx:xx:xx Info {"ok":true,"result":true,"description":"Webhook was set"}
xx:xx:xx Peringatan Eksekusi selesai
Membuat Perintah Pengiriman Pesan
Perintah ini berfungsi untuk mengirimkan pesan dari bot ke akun telegram kita. Bot perlu tahu CHAT_ID kita. Untuk mendapatkan chat_Id, langkahnya sebagai berikut
- Buka telagram lewat web
- Klik Menu (garis-garis mendatar pada pojok kiri atas)
- Klik setting
- Klik kanan pada foto profil
- Pilih inspect
- Perhatikan pada peer=“xxxxxxxxx”, kode amgka itulah chat_id kita, salin
- Kembali ke Main Bot, buat script berikut di bawah function setHook
function sendMessage(to, message){
const method = '/sendMessage';
const options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify({
chat_id: to,
text: message,
parse_mode: 'html',
muteHttpExceptions: false
}),
};
const response = UrlFetchApp.fetch(urlTelegram+token+method, options);
return response;
}
function sendToMe(){
const pesan = "Hai... Apa kabar..."
const result = sendMessage('601588892', pesan);
Logger.log(result)
}
- Pada perintah jalankan, ganti setHiik dengan SenToMe
- Klik jalankan
- Jika muncul
xx:xx:xx Peringatan Eksekusi dimulai
xx:xx:xx Info {"ok":true,"result":{"message_id":2,"from":{"id":1982406902,"is_bot":true,"first_name":"eProject","username":"eProject_1_bot"},"chat":{"id":6015xxxx,"first_name":"Harjito","username":"harjito_unnes","type":"private"},"date":1629606418,"text":"Hai... Apa kabar..."}}
xx:xx:xx Peringatan Eksekusi selesai
artinya pesan berhasul dikirim
- Buka telegram kita, ternyata kita mendapat pesan dari bot telegram kita
Membuat Perintah Menerima Pesan
- Kita menuju ke function request(param)
- ganti isinya dengan
return sendMessage('601588892', param.postData.contents);
- Buka Route-bot
- Klik jalankan, kita kan diminta untuk memberikan ijin, klik Tinjau Ijin
- Pilih email kita
- Pilih lanjtan
- Klik buka Route-bot (tidak aman)
- Klik ijinkan
- Masuk ke bot telegram kita, ketikkan hallo
- Bot akan menjawab dengan kode berikut
{"update_id":591813352,
"message":{"message_id":8,"from":{"id":601588892,"is_bot":false,"first_name":"Harjito","username":"harjito_unnes","language_code":"en"},"chat":{"id":601588892,"first_name":"Harjito","username":"harjito_unnes","type":"private"},"date":1629607532,"text":"halo"}}
Ada beberapa hal yang perlu kita pahami, bahwa pesan yang kita terima berupa json, kalo kita rapikan akan sebagai berikut
update_id: 591813352,
message:
message_id: 8
from:
id: 601588xxx // ini adalah id dari pengirim pesan, yang nilainya berubah sesuai dengan siapa yang mengirimkan, kebetulan itu adalah id kita
is_bot: false // artinya pesan datang dari manusia
first_name: Harjito
username: Harjito_unnes
languaga_code: en
chat:
id: 601588xxx
first_name: Harjito
username: Harjito_unnes
type: private
date: 1629607532 // waktu dalam timestamp
text: halo
Mari kita ubah balasan menjadi lebih manusiawi
- Kembali ke function request
- Ubah isinya menjadi
const message = JSON.parse(param.postData.contents).message;
const chat_id = message.from.id;
const name = message.from.first_name ? message.from.first_name : message.from.last_name //jika user tidak menggunakan first name kita ambil last name
const text = message.text
const reply = name+', '+text;
return sendMessage(chat_id, reply);
- Simpan
- Sekarang coba untuk chat lagi dengan bot, misalkan ketikkan: halo
- Bot Akan menjawab: Harjito, halo
Tags:
Ikuti terus tutorial saya di e-Project dan channel
saya di