Google Script Library Telegram Bot API

6 menit saja |

Dokumentasi library untuk google script yang saya tulis untuk Bot API Telegram. Sebagai contoh pemakaiannya, kita akan buat bot Reminder (pengingat) Tahajud.

Pengantar

Beberapa kali saya membuat bot notifikasi ke Telegram dengan menggunakan Google Script.

Sebagai contoh yang saya pakai saat ini adalah:

  • Notifikasi ketika ada email (gmail), bot telegram akan memberi tahu lengkap dengan potongan isinya. Sehingga, saya tidak akan melewatkan email penting.
  • Notifikasi saat membuat google form masuk, ketika saya membuat event dan proses registrasinya lewat form. Notifikasi di kirim Bot Telegram ke saya, jadi langsung tau jika ada-ada yang perlu di follow up.
  • Notifikasi remote sistem lewat bot Telegram akan diberitahu jika ada suatu sistem bermasalah, misalnya VPS down, networking ada kendala, dan lain sebagainya.
  • Membuat quote atau ayat quran secara random untuk dikirim ke grup tertentu, saya implementasikan di grup @myQers setiap 4 jam sekali ada random quran
  • Membuat scrapping web, kemudian diinformasikan ke grup. Di grup @botphp telegram, setiap hari akan mendapatkan informasi ebook gratis yang dibagikan oleh packt.
  • Dan mungkin bisa dipakai untuk lain-lain seperti IoT (Internet of Think), reminder jadwal sholat, dan sebagainya.

Screenshot notifikasi email yang dikirim oleh Amazone:

Telegram Bot Notifikasi

Screenshot info ebook gratis setiap hari di grup @botphp telegram :

Telegram Bot Info Ebook Gratis

Pada akhirnya harus menulis atau mempaste berkali-kali codingnya. Kemudian terbersit untuk membuat sebuah library yang bisa dipake bersama, sehingga lebih mudah tidak perlu menulis ulang dan tentu menulis coding jadi tampak lebih sederhana.

Pengenal

Berikut Google Script Library -nya :

  • ID : MHczUHrzvBLV1HsUn5XkOIfvg_do21SJR
  • Fungsi : Library Bot API Telegram
  • Versi : 28

Saya share secara public, sehingga dapat dimanfaatkan siapa saja.

Selalu gunakan versi terbaru. Yakni yang angkanya paling besar.

Fungsi

1. Init Class

var token = 'TOKEN BOT TELEGRAM';
var tg = new telegram.daftar(token);

Dimana, tg adalah variable untuk menampung class library telegram.

2. Send Request

var result = tg.request(method, data)

Fungsi request hanya untuk user yang sudah pengalaman. Jika masih baru belajar, langsung pake fungsi kirim Pesan dibawah ini.

3. Fungsi Kirim Pesan

var tg.kirimPesan(chatid, pesan, parse_mode, disable_web_page_preview)

Fungsi ini khusus dibuat sendiri, untuk mengirim pesan. Sehingga tidak perlu build fungsi sendiri dari Send Request.

Variasi Kirim Pesan:

  1. Kirim pesan langsung:
    tg.kirimPesan('213567634', 'Halo, bang Hasan!');
    
  2. Kirim pesan dengan style format
    • markdown:
      tg.kirimPesan('213567634', '_Halo_, *bang Hasan*!', 'markdown');
      
    • HTML:
      tg.kirimPesan('213567634', '<i>Halo</i>, <b>bang Hasan</b>!', 'HTML');
      

4. Fungsi-fungsi Lib

  • request (method, data)
  • requestForm (method, data)
  • requestBlob(method, data)
  • kirimPesan(chatid, pesan, parse_mode, disable_web_page_preview)
  • sendMessage(chatid, pesan, parse_mode, disable_web_page_preview)
  • sendPhoto(chatid, photo, caption, disable_notification, reply_to_message_id, reply_markup)
  • sendDocument(chatid, document, caption, disable_notification, reply_to_message_id, reply_markup)
  • sendAudio(chatid, audio, caption, duration, performer, title, disable_notification, reply_to_message_id, reply_markup)
  • sendVideo(chatid, video, caption, duration, width, height, disable_notification, reply_to_message_id, reply_markup)
  • sendMsgKeyboard(chatid, text, keyboard) //parse_mode: HTML
  • sendMessageKeyboard(chatid, text, keyboard) //parse_mode: HTML
  • sendMsgKeyboardInline(chatid, text, keyboard) //parse_mode: HTML
  • sendMessageKeyboardInline(chatid, text, keyboard) //parse_mode: HTML
  • editMessageText(chat_id, message_id, pesan, keyboard) //parse_mode: HTML
  • replyMessage(msg, pesan, keyboard)
  • clearHTML(string)
  • clearMarkdown(string)
  • timeConverter(Unixtimestamp, ribuan_boolean)
  • setWebhook(url)
  • deleteWebhook()

5. Tools

  1. Utils clearHTML(string): string clearMarkdown(string): string
  2. Button text(text, callback_data): JSON inline(text, callback_data): JSON query(text, switch_inline_query): JSON url(text, url): JSON

Penggunaan:

var Utils = telegram.Utils;
var pesan = Utils.clearHTML('Hasanudin H Syafaat <[email protected]>');

versi 26: ditambahkan tg.util dan tg.button (alias tg.tombol)

Contoh Lengkap

Untuk memulainya bisa langsung ke situs Google Script https://script.google.com

Tambahkan Library

Pilih menu Resource -> Library

Tambahkan ID library : MHczUHrzvBLV1HsUn5XkOIfvg_do21SJR

Pilih VERSI yang angkanya paling besar

GS Telegram Library

Pastikan proyek sudah disimpan dan diberi nama proyek sebelum menambahkan library.

Tulis kode

Berikut contoh lengkap di google script :

function pesanku() {
  var token = 'TOKEN BOT';
  var tg = new telegram.daftar(token);
  var chatid = 213567634 // ID Telegram untuk @hasanudinhs
  
  var teks = '_Halo_, *bang Hasan*!';
  var ret = tg.kirimPesan(chatid, teks, 'markdown');
  Logger.log(ret); // simpan hasil return kirimPesan ke log
}

Jalankan Code

Jalankan kode diatas, pastikan pilihan fungsi yang dijalankan sesuai nama fungsinya. Yakni dalam contoh ini adalah pesanku

Ketika menjalankan pertama kali, akan meminta akses luar. Jawab IYA untuk melanjutkan.

Reminder Bot

Mari kita buat sesuatu yang lebih ‘terasa’. Misalnya kita buat sebuah reminder atau bot pengingat Sholat Tahajud. Katakanlah, tahajud nya antara jam 3:00 - 4:00 WIB.

Tahajud Reminder

Kita sesuaikan dulu script diatas menjadi:

function reminderTahajud() {
  var token = 'TOKEN BOT';  // sesuaikan dengan TOKEN Bot mu
  var tg = new telegram.daftar(token);
  var chatid = 213567634; // ID Telegram tujuan remindernya, tidak tahu ID mu? coba start @strukturbot
  
  var now = new Date();
  var waktu = Utilities.formatDate(now, 'Asia/Jakarta', 'HH:mm:ss');
  var teks = "_Hooiii_ orang berselimut, *banguuun*!"
  
  teks = teks + "\n\nSekarang waktunya Tahajud!!";
  teks = teks + "\nSudah jam `" + waktu + "` lhoooh!";
  
  var hasil = tg.kirimPesan(chatid, teks, 'markdown');
  Logger.log(hasil); // simpan hasil return kirimPesan ke log
}

Seperti ini screenshotnya :

GS Telegram Bot Tahajud Reminder

Jalankan

Klik tombol run (▶️) atau Run -> namafungsi reminderTahajud.

Jika sukses akan mendapatkan pesan seperti ini:

GS Telegram Bot Tahajud Hasil

Setup Akhir

Agar script ini bisa berjalan sesuai jam yang ditentukan, yakni jam tahajud antara pukul 3-4 pagi. Maka perlu diseting timernya.

  1. Klik icon waktu (🕒) atau Resources -> Current project trigger
  2. Klik No triggers set up. Click here to add one now. untuk menambahkan trigger baru.
  3. Pastikan nama fungsi terpilih, kemudian sesuaikan waktunya.
    • Run pilih nama fungsinya reminderTahajud
    • Events pilih Time-driven
    • kemudian pilih Day timer untuk trigger secara harian
    • lanjutkan dengan memilih waktunya yakni antara 3am to 4am artinya rentan waktu antara jam 3 pagi sampai dengan jam 4 pagi, sesuai waktu trigger ini dibuat.
  4. terakhir, save untuk menyimpannya.

GS Telegram Bot Trigger

  1. Selesai.

    Jika menggunakan bahasa Indonesia dalam google environmentnya, kira-kira sendiri ya apa itu pilihannya.

Full Materi

Lihat di https://bit.ly/GooglescriptBotTelegram

Penutup

Google Script memang sangat powerfull, untuk kebutuhan personal sudah sangat lebih dari cukup. Sehingga sangat perlu dimanfaatkan buat kita semua.

Mungkin dapat diimplementasikan di segala bidang. Misalnya:

  • di dunia sekolahan reminder waktu pendaftaran kurang berapa hari, reminder jadwal ujian, reminder jadwal guru atau siswa
  • di event organizer, reminder acara, reminder peserta, dlsb
  • di fokus diskusi grup, reminder berbagai hal kegiatan, moment, dan lain-lain
  • keagamaan, membuat quote secara acak tampil secara acak, info random quran, dan lain-lain
  • kalangan penggiat IoT, membuat trigger berbagai hal
  • networking, pembuat notifikasi server, kondisi web, aplikasi, dan lain-lain
  • programmer, membuat pengganti cronjob remote, berbagai kondisi, dan sebagai-bagai
  • penggiat media sosial, membuat notifikasi jika ada sesuatu, misalnya namanya di mention, melike postingan, membuat resume, dan lain-lain.
  • dan tentu saja bisa dibuat berbagai ide-ide liar dan keren lainnya yang dapat diciptakan, apalagi dengan mengintegrasikan dengan google form, google spreadsheet, google drive, media sosial, dll

Semoga dokumentasi library google script untuk Bot API Telegram ini dapat bermanfaat. Jangan lupa untuk bergabung ke diskusi pembuatan bot di grup telegram @botIndonesia bersama para developer bot lainnya, tidak harus bisa coding lho!

Semoga bermanfaat, jangan lupa komentarnya jika sudah membaca ini.. tinggalkan jejak agar saya mengenal kamu dan tahu pendapatmu 😘