Google Script Quran Random untuk Telegram
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 :
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.
2. Tambahkan Library
Pilih menu Resource -> Library
Tambahkan ID library : MHczUHrzvBLV1HsUn5XkOIfvg_do21SJR
Pilih versi terakhir yang tersedia.
Pastikan proyek sudah disimpan dan diberi nama proyek sebelum menambahkan library.
3. Tulis Kode
Kita buat 2 buah fungsi, agar mudah dipahami.
-
Fungsi
getQuranRandom()
function getQuranRandom() { var response = UrlFetchApp.fetch("http://api.banghasan.com/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 (▶️)
atauRun -> getQuranRandom
Kemudian hasilnya, bisa dilihat pada menu
view -> Logs
atau tekanCtrl+ENTER
Ketika menjalankan pertama kali, akan meminta akses luar. Jawab IYA untuk melanjutkan.
Jika benar, maka akan tampil seperti ini:
-
Fungsi
showQuran()
Kita tambahkan kode kedua dibawah kode di atas, yakni membuat fungsi
showQuran()
. Yakni fungsi untuk menampilkan data yang didapat darigetQuranRandom
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.
- Klik icon waktu (🕒) atau
Resources -> Current project trigger
- Klik
No triggers set up. Click here to add one now.
untuk menambahkan trigger baru. - Pastikan nama fungsi terpilih, kemudian sesuaikan waktunya.
Run
pilih nama fungsinyashowQuran
Events
pilihTime-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..
- terakhir,
save
untuk menyimpannya.
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.banghasan.com/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
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 :
- Pemanfaatan Library pada Google Script
- Mengambil data dari suatu API dalam format JSON dan mengolahnya
- Mengirim pesan ke suatu grup (chatid) di Telegram via Bot API
- Membuat skedul agar script berjalan setiap waktu yang ditentukan
- Menggabungkan 2 library ke dalam 1 proyek
Penutup
Dengan memanfaatkan metode serupa, dapat dibuat berbagai quote lainnya. Silakan divariasikan!
Jangan lupa bergabung di grup @botIndonesia 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 😘