Bot Telegram: Membuat Hashtag di Chat memanfaatkan Google Script dan Spreadsheet (II)

4 menit saja |

Ini adalah bagian kedua ya, dari serial tutorial di bulan Ramadhan belajar Bot Telegram menggunakan Google Script untuk use case hashtags dengan pemanfaatan spreadsheet sebagai databasenya.

Pendahuluan

Meski ini lanjutan, tapi tidak ada salahnya saya kasih pengantar lagi.

Asumsi

Sudah membaca pada tutorial yang pertama, jika belum potongan coding di sini tidak berguna.

Mulai

Okay, mari kita mulai. Gasss polll lageeh!!

Code Bot

Buka file script yang menampung botnya. Kita sisipkan buat trigger hashtagnya.

Yang sebelumnya, jika belum mengerti copas aja atau telan mentah-mentah. Sedangkan yang ini, relatif jauh lebih mudah daripada memahami fungsi-fungsi tag sebelumnya. Karena mestinya sudah familiar maksud-maksudnya.

Kita pakai format seperti ini ya.

/+tag #namatag isipesan

/-tag #namatag

/tags

/+tag artinya untuk menambah atau mengupdate tag

/-tag artinya untuk menghapus tag

/tags artinya untuk melihat daftar semua tag yang tersedia

Aturan Nama Tag

  • paling depan harus karakter pagar #
  • hanya terdiri 1 kata, boleh lebih dengan pemisah garis bawah _
  • kata tersebut boleh huruf, boleh angka, atau garis bawah
  • karakter khusus tidak diperbolehkan, misalnya !@$%^&*
  • panjang boleh cuma 1 karakter

Aturan Isi Tag

Saat mentrigger /+tag #namatag isi tag, maka:

  1. sesudah #namatag, HARUS ada spasi kemudian karakter
  2. sesudah karakter poin 1, boleh diisi ENTER atau isi pesan lainnya
  3. yang tidak kedetek: sesudah #namatag spasi atau ENTER kemudian isi pesan

Aturan-aturan ini bisa diubah sendiri, dengan syarat mengubah regex / codingannya juga.

Event Tambah Tag

Ingat, kalau ada kata exec nya… berarti tambahkan di dalam blok kode if (update.message) {} atau sesudah kalimat ini

// kalau nanti mau kembangin sendiri menjadi bot interaktif, code nya taruh disini
// atau buatkan fungsi tersendiri saja buat handle nya biar ga bertumpuk panjang
// -- mulai custom text --

tambahkan kode untuk trigger tambah tag.

    // Merespon penambahan tag 
    // Dengan format: /+tag #namatag isi
    var pola = /^(\/\+tag (#\w+)\s).{1,}/i;
    if (pola.exec(msg.text) ) {
       // pisah nama tag dan isi pesan
       var cocok = msg.text.match(pola);
       var tagName = cocok[2];
       var tagValue = msg.text.replace(cocok[1],"");
       var pesanTag = tagTambah(tagName, tagValue);
       return tg.kirimPesan(msg.chat.id, pesanTag);
    }

Event Tampil Tag

Untuk respon hastag, mencarinya kalau ketemu menampilkannya.

    // respon #tag dan menampilkan isinya
    // ini menggunakan regex yang awam susah paham, intinya klo ada hashtag ( 1 kata yang depannya ada # nya ) :
    var pola = /^#\w+$/i;
    if (pola.exec(msg.text) ) {
       var pesanTag = tagCari(msg.text);
       if (pesanTag) {
            return tg.kirimPesan(msg.chat.id, pesanTag);
       }
    }

Event Hapus Tag

Untuk merespon perintah penghapusan tag.

// Merespon penghapusan tag 
    // Dengan format: /-tag #namatag
    var pola = /^\/-tag (#\w+)$/i;
    if (pola.exec(msg.text) ) {
       // ambil nama tag nya aja
       var cocok = msg.text.match(pola);
       var tagName = cocok[1];
       var pesanTag = hapusTag(tagName);
       return tg.kirimPesan(msg.chat.id, pesanTag);
    }

Event List Tag

Untuk merespon /tags dan menampilkan semua tag yang sudah tersimpan.

    // Merespon list tag 
    // Dengan format: /tags
    var pola = /^\/tags$/i;
    if (pola.exec(msg.text) ) {
       var pesanTag = tagList();
       return tg.kirimPesan(msg.chat.id, pesanTag);
    }

Selesai

Sudah selesai, bisa di coba dengan menDeploy. Jangan lupa pilih New di versi saat mendeploy.

Semestinya bot sudah dapat menjalankan fungsi tags dengan sempurna.

Bot Ceriwis Demo Tags

Tips

Tips Pertama: Semua proses CRUD (membuat tag baru, update, hapus), bisa dilakukan langsung di spreadsheet. Jadi jika ingin menambah banyak tags, mending di spreadsheet saja. Lebih cepat dan praktis.

Demikian sebaliknya, ketika bot melakukan proses CRUD, di spreadsheet akan otomatis berubah.

Tips Kedua: Maka, jika di grup suatu ketika tidak menginginkan proses membuat/update/hapus tag. Hilangkan saja code dibagian per bagian respon event. Cukup sediakan aja respon untuk even tampilkan tag. Sehingga user biasa hanya bisa menampilkan tag, tapi tidak bisa ikutan otak atik isi tag.

ℹ️ ) Jika ingin melihat live demonya, bisa cek bot Ceriwis Demo @ceriwisdemobot dan lihat juga perubahan pada Spreadsheet Demo ini

Privacy

Jika user mengetik #namatag di grup, dan bot tidak merespon padahal tag tersebut ada. Mungkin perlu dicek privacy bot pada @botfather.

Matikan (disable) privacy nya jika menginginkan bot dapat bekerja untuk grup.

set privacy disable

Masih nggak jalan? Cek postingan ini.

Pembatasan

Untuk pembatasan hanya tampil di grup tertentu, hanya boleh diakses user tertentu, atau pembatasan-pembatasan lainnya silakan dimodifikasi sendiri yak. Atau jika sempat, barangkali lain waktu akan dibahas juga. Kasih komentar saja jika ingin dibuatkan modifikasi-modifikasi berbagai pembatasan lainnya.

Kode Bonus

Mungkin ada yang ingin mengirim isi tag dengan cara bot membalas user dari pesan user yang direply?

Send Message Reply Chat

Kode bonus ini ditayangkan di video.

Youtube

Buat yang males membaca, bisa menonton video nya di youtube.

Link Video: 12. Bot Telegram Fitur Hashtag (Google Script dan Spreadsheet)

Lihat daftar video: http://j.mp/botphplist

Penutup

Sengaja tidak saya sertakan full source code nya. Karena kebanyakan langsung di copas dan dijalankan, dan keluarlah error, kemudian bertanya kok ga bisa.

Maaf ya, sengaja biar mengikuti langkahnya satu per satu dari atas.

Jika ada pertanyaan, saran atau masukkan silakan didiskusikan. Jika ingin diskusi live dan biasanya jawabannya juga lebih cepat, baiknya bergabung saja di group Telegram @botIndonesia.

BUAT YANG SUKSES mencoba, jangan lupa komentarnya yak 😘