Google Script Quran Random untuk Telegram

4 menit saja

Contoh penggunaan Google Script menggunakan Library Telegram API seperti pada postingan sebelumnya. Kali ini kita buat implementasinya untuk membuat quote al-Quran secara random atau acak, dikirim ke grup Telegram atau ke channel.

Pengantar

Setelah Google Script Library untuk Bot API Telegram, mari kita praktekkan untuk membuat postingan random alQuran.

Sebagai contoh seperti di grup Selasar @myQers yang setiap 4 jam sekali akan mengeluarkan random quran :

Telegram Bot Notifikasi

Bahan

  • Akun google, untuk menaruh script google nya.. ya tentu saja!

    Dengan memiliki akun di gmail, secara otomatis sudah ada akun google.

  • Google Script Library untuk Bot API Telegram,

    ID Library : MHczUHrzvBLV1HsUn5XkOIfvg_do21SJ

  • Sedikit pengetahuan API Fathimah
  • Token Bot API dari botFather
  • ID Grup/Supergrup, atau Username Channel.

    dalam hal ini kita akan pergunakan sebagai contoh adalah ID Grup atau Supergroup di Telegram.

Dengan modal Google Script, kita tidak memerlukan sebuah web server lagi atau pun sebuah VPS untuk membuat crontab atau menjalankan script.

Itulah poin utama atau kelebihannya yang ingin kita ulas atau tonjolkan pada materi ini.

Langkah

Mari kita coba ikuti langkah-langkah berikut ini.. pastikan teliti mencobanya yak.

1. Google Script

Buka Google Script Editor atau via google drive, klik kanan tambahkan file baru google script.

Google Script Editor

2. Tambahkan Library

Pilih menu Resource -> Library

Tambahkan ID library : MHczUHrzvBLV1HsUn5XkOIfvg_do21SJR

Pilih versi terakhir yang tersedia.

GS Telegram Library

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

3. Tulis Kode

Kita buat 2 buah fungsi, agar mudah dipahami.

  1. Fungsi getQuranRandom()

    function getQuranRandom() {
      var response = UrlFetchApp.fetch("http://api.fathimah.ga/quran/format/json/acak");
      var quran = JSON.parse(response)
      // Logger.log(response.getContentText());
         
      var qs = quran.surat.nama + ' (' + quran.surat.nomor + ') '
      qs = qs + ':' + quran.acak.id.ayat 
         
      var qt = quran.acak.id.teks
      var qr = quran.acak.ar.teks
         
      var hasil = qr + "\n\n" + qt + "\nQS. *" + qs + "*"
      Logger.log(hasil)
      return hasil;
    }
    

    Fungsi diatas bertugas mengambil data alQuran secara acak pada API Fathimah, yang kemudian hasilnya di simpan pada Logger dan dibalikkan nilainya.

    Untuk mencobanya, klik tombol run (▶️) atau Run -> getQuranRandom

    Kemudian hasilnya, bisa dilihat pada menu view -> Logs atau tekan Ctrl+ENTER

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

    Jika benar, maka akan tampil seperti ini:

    Google Script Logs

  2. Fungsi showQuran()

    Kita tambahkan kode kedua dibawah kode di atas, yakni membuat fungsi showQuran(). Yakni fungsi untuk menampilkan data yang didapat dari getQuranRandom ke Grup Telegram :

      function showQuran() {
      var token = 'TOKENBOT'; // token bot dari @botFather
      var tg = new telegram.daftar(token);
      var chatid = '-111111' // ID Grup
         
      var teks = getQuranRandom();
      var ret = tg.kirimPesan(chatid, teks, 'markdown');
      Logger.log(ret);
      }
    

4. Buat Trigger

Langkah terakhir, kita buat trigger agar fungsi showQuran() dijalankan.

  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 showQuran
    • Events pilih Time-driven
    • kemudian pilih Hour timer untuk trigger secara berkala jam-an
    • sesuaikan berapa jam sekali bot akan membroadcast ke grup. Saya pribadi, memilih 4 jam sekali yang artinya dalam sehari akan menampilkan 6x. Pertimbangkanlah baiknya seberapa sering, agar tidak terlalu anoyying juga..
  4. terakhir, save untuk menyimpannya.

Google Script Telegram Bot Trigger

Selesai… Grup insyaAllah akan menerima broadcast setiap 4 jam sekali dengan isi ayat-ayat Quran secara acak.

Source Code

Berikut full source code nya:

/*
*  Hasanudin H Syafaat
*  Email: [email protected]
*  Telegram: @hasanudinhs
*
*  Quote - Random Quran
*  Versi 1.03
*  Depok, 1 Februari 2017
*/

function getQuranRandom() {
     var response = UrlFetchApp.fetch("http://api.fathimah.ga/quran/format/json/acak");
     var quran = JSON.parse(response)
     // Logger.log(response.getContentText());
     
     var qs = quran.surat.nama + ' (' + quran.surat.nomor + ') ';
     qs = qs + ':' + quran.acak.id.ayat ;
     
     var qt = quran.acak.id.teks;
     var qr = quran.acak.ar.teks;
     
     var hasil = qr + "\n\n" + qt + "\nQS. *" + qs + "*";
     Logger.log(hasil);
     return hasil;
   }

function showQuran() {
     var token = 'TOKENBOT'; // token bot dari @botFather
     var tg = new telegram.daftar(token);
     var chatid = '-111111'; // ID Grup
     
     var teks = getQuranRandom();
     var ret = tg.kirimPesan(chatid, teks, 'markdown');
     Logger.log(ret);
  }

Shortcut

Selain cara di atas, saya sudah buatkan library khusus untuk quran random ini. Sehingga tidak perlu susah-susah membuat fungsi getQuranRandom() seperti di atas :

ID Library: M6cyRqhi7yPxPNt0NQ79AqKZTb1melOAr

Google Script Library Quran Random

Sehingga pada fungsi showQuran() dilakukan sedikit penyesuaian :

  var teks = quran.random();

Full source code nya menjadi:

function showQuran() {
     var token = 'TOKENBOT'; // token bot dari @botFather
     var tg = new telegram.daftar(token);
     var chatid = '-111111'; // ID Grup
     
     var teks = quran.random();
     var ret = tg.kirimPesan(chatid, teks, 'markdown');
     Logger.log(ret);
  }

Jauh lebih singkat, dan mengurangi tingkat kesalahan. Namun, jika ingin memodifikasi lebih banyak tentu sebaiknya tetap menambahkan fungsi sendiri getQuranRandom() untuk bisa lebih banyak disesuikan isi maupun formatnya.

Kesimpulan

Dari script di atas kita dapat belajar :

  1. Pemanfaatan Library pada Google Script
  2. Mengambil data dari suatu API dalam format JSON dan mengolahnya
  3. Mengirim pesan ke suatu grup (chatid) di Telegram via Bot API
  4. Membuat skedul agar script berjalan setiap waktu yang ditentukan
  5. Menggabungkan 2 library ke dalam 1 proyek

Penutup

Dengan memanfaatkan metode serupa, dapat dibuat berbagai quote lainnya. Silakan divariasikan!

Jangan lupa bergabung di grup @botphp Indonesia Telegram, untuk berdikusi dan bersilaturrahim dengan para programmer bot lainnya.

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

Tinggalkan komentar