author Ahmad Muhardian

Cara Membuat Bot Telegram dengan Layanan Hook.io


Tutorial Membuat Bot Telegram

Bot Telegram bisa dibuat dengan berbagai macam bahasa pemrograman:

Bisa PHP, Javascript, Java, Python, Ruby, dan sebagainya.

Ada dua pengetahuan dasar yang harus dipahami:

  1. Cara Membuat Http Request dan Webhook.
  2. Cara Mengurai JSON dari Webservice.

Tapi, sekarang masalahnya di mana kita harus taruh kode-kode tersebut?

“Sewa server…”

Serpertinya terlalu mahal, kalau hanya untuk belajar.

“Bagaimana kalau gunakan yang gratis saja.”

yap, itu dia jawabannya.

Salah satu layanan hosting gratis yang menyediakan Webhook adalah Hook.io.

Update 28 Agustus 2020: Hook.io sudah tidak menyediakan paket gratis lagi

Pada tulisan ini, kita akan belajar cara membuat Bot Telegram dengan metode Webhook menggunakan layanan Hook.io.

Sehingga nanti kita akan mampu membuat bot yang siap pakai.

Hubungan Bot dengan Hook.io

Ada dua pembahasan utama dalam panduan ini:

  1. Cara Menciptakan Bot di BotFather
  2. Cara Membuat Layanan untuk Mesin Bot di Hook.io menggunakan bahsa pemrograman javascript.

Mari kita mulai…

Bahan-bahan yang Dibutuhkan:

  1. Token API Bot Telegram — kunci untuk mengakses bot.
  2. Akun Hook.io — silahkan daftar dulu!

Membuat Bot dan Token API

Silahkan buka @botfather untuk menciptakan bot baru.

Pada tombol perintah bot (/), pilih /newBot.

Mendaftar Bot Baru

Setelah itu, silahkan balas dengan nama bot. Contoh: “Pak Tani”.

Memberikan nama bot

Selanjutnya, kita akan diminta memberikan username untuk bot.

Setiap username bot harus diakhiri dengan kata “bot” dibelakangnya.

Membuat username untuk bot

setelah itu, kita akan mendapatkan kode token API bot.

Mendapatkan token Bot

Simpan token tersebut, karena akan kita gunakan untuk menghubungkannya dengan Hook.io.

Membuat Service di Hook.io

Setelah kamu membuat akun di Hook.io, silahkan buat service baru.

Klik di sini untuk membuatnya.

Isi nama hook yang akan dibuat, contoh “petani”.

Membuat webhook untuk Bot

Klik Create untuk membuatnya.

Membuat Variabel Lingkungan (ENV)

Variabel lingkungan (ENV) akan kita gunakan untuk menyimpan token bot agar kita tidak mengetik tokennya dalam kode. Karena token bersifat rahasia.

Silahkan masuk ke https://hook.io/env untuk membuat variabel lingkungan.

Membuat variabel lingkungan

Membuat Kode untuk Kendali Bot

Perahatikan kode Hook Source:

Kode default webhook

Silahkan ganti kode (Hook Source) tersebut dengan kode ini.

module['exports'] = function petaniBot(hook) {

    // impor modul request
    var request = require('request');

    // buat atau kirim request ke bot telegram
    request.post('https://api.telegram.org/bot' + hook.env.token_petani_bot + '/sendMessage')
        .form({
              'chat_id': hook.params.message.chat.id,
              'text': 'Anda mengirim: ' + hook.params.message.text
    });
}

Fungsi dari kode diatas hanya akan mengirimkan request ke Bot Telegram, bila ada request atau chat yang masuk.

Isi kirimannya berupa JSON: (lihat dokumentasi Bot API)

{
    "chat_id": hook.params.message.chat.id,
     "text": "Anda mengirim: " + hook.params.message.text
}

Agar dapat dikirim, kita membutuhkan token bot.

Token bot-nya sudah ada di dalam variabel token_petani_bot, jadi tinggal dipakai saja:

request.post('https://api.telegram.org/bot' + hook.env.token_petani_bot + '/sendMessage').form(<data>);

Kode kendali sudah siap…

Selanjutnya, kita akan menghubungkan Hook.io dengan bot.

Cara Menghubungkan Bot Telegram dengan Hook.io

Hubungan Bot dengan Hook.io

Untuk menghubungkan bot dengan hook, silahkan susun URL-nya menjadi seperti ini:

https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://hook.io/<hook-user>/<hook-name>

Silahkan diganti:

  • <TOKEN> dengan token bot anda
  • <hook-user> dengan username hook.io anda
  • <hook-name> dengan nama layanan/service hook yang anda buat

Contoh:

https://api.telegram.org/bot247322285:AADCfe2WSna7sclLalfBq5VCmn3yTzii_zQ/setWebhook?url=https://hook.io/ardianta/petani/

Setelah itu, silahkan buka URL tersebut melalui browser.

Jika mendapatkan balasan seperti ini, maka bot berhasil dihubungkan dengan layanan hook.

Menghubungkan Bot dengan Webhook

Percobaan:

Silahkan buka atau chat dengan bot yang sudah dibuat, https://t.me/petani_bot.

Ujicoba Bot

Kesimpulan dan Saran

Bot Telegram dapat kita kendalikan dengan kode yang disimpan di Hook.io.

Kita bisa menentukan bagaimana tingkah laku Bot melalui kode.

Pada contoh di atas, bot sudah berhasil menerima dan mengirim balasan.

Saran untuk pengembangan selanjutnya:

Terima kasih sudah mengikuti panduan ini…

Jangan lupa bergabung dengan channel @petanikode di Telegram untuk mendapatkan informasi terbaru.

Referensi: unnikked.ga

Baca Juga ini

Membuat Bot Telegram Tanpa Menulis Kode Program (Coding)

Membuat Bot Telegram Tanpa Menulis Kode Program (Coding)

Bagi sebagian orang—khususnya yang bukan programmer—mungkin akan merasa kesulitan membuat Bot Telegram… Karena tidak memiliki kemampuan pemrograman/coding. Tapi tenang saja… Kita masih bisa membuat Bot tanpa harus menulis satu baris kode pun. Caranya? Caranya menggunakan bot yang sudah dirancang khusus untuk pembuatan membuat bot. Pada kesempatan ini, kita akan belajar membuat Bot sederhana yang berfungsi untuk membaca RSS Feed Reddit. Catatan: Reddit sudah lama diblokir di Indonesia.

Tutorial Google Maps API: Membuat Marker untuk Menandai Lokasi

Tutorial Google Maps API: Membuat Marker untuk Menandai Lokasi

Marker sering digunakan untuk menandai sebuah lokasi. Biasanya sering digunakan dalam membuat aplikasi Geolocation. Pada kesempatan ini, kita akan belajar membuat marker di Google Maps dan melakukan beberapa modifikasi. Kamu bisa menggunakan contoh kode sebelumnya untuk uji coba. Sudah siap? Mari kita mulai… googletag.cmd.push(function () { googletag.display('div-gpt-ad-multibanner1'); }); Mengenal Objek MarkerMarker merupakan sebuah objek yang bisa kita buat dengan kode berikut: var marker = new google.

Belajar Javascript: Apa itu DOM API? dan Bagaimana Cara Menggunakanya?

Belajar Javascript: Apa itu DOM API? dan Bagaimana Cara Menggunakanya?

Saat kamu memutuskan akan belajar Javascript, maka wajib hukumnya memahami tentang DOM. DOM merupakan metode yang digunakan oleh Javascript untuk...

Mengatasi Malsalah Posisi Titik Tengah Google Maps pada Modal

Mengatasi Malsalah Posisi Titik Tengah Google Maps pada Modal

Saat membuat Google Maps pada Modal di template Admin LTE, ada masalah yang membuat saya bingung. Posisi titik tengah Google maps selalu berada di pojok kiri atas. Meskipun saya sudah set titik tengahnya pada trigger event resize, namun tetap saja posisinya berada di pojok kiri atas. masalah sebelumnya, Google Maps tidak bisa ditampilkan karena di letakkan di dalam modal. Meskipun saya sudah set titik tengahnya pada trigger event 'resize', namun tetap saja posisinya berada di pojok kiri atas.

Mengatasi Peta (Google Map) yang tidak Ditampilkan di Modal

Mengatasi Peta (Google Map) yang tidak Ditampilkan di Modal

Ketika saya menggunakan modal untuk menampilkan peta (Google Maps), petanya tidak mau tampil. Entah mengapa? setelah ukuran layarnya di-resize, petanya bisa tampil. Mungkin karena div di dalam modal bersifat dinamis atau responsif. Peta kosong, hanya ada warna abu-abu. Solusi dari masalah ini saya temukan di Stackoverflow. MarcoK memberikan penjelasan jawaban atas masalah ini. Google Maps memang akan menampilkan area abu-abu (grey) kalau ditempatkan di elemen dinamis. Oleh karna itu, kita perlu memanggil fungsi “resize” ketika animasi modal sudah selesai.

Tutorial Google Maps API: Cara Menggunakan Info Window untuk Menampilkan Informasi

Tutorial Google Maps API: Cara Menggunakan Info Window untuk Menampilkan Informasi

Info Window adalah objek yang digunakan untuk menampilkan informasi pada suatu titik koordinat tertentu. Biasanya digunakan bersamaan dengan marker. Contoh Info Window: Info Window dapat kita isi dengan kode HTML. Sehingga data yang ditampilkan di dalam jendela Info Window bisa kita berikan style CSS agar terlihat menarik. Cara Membuat Info WindowPertama yang harus kita buat adalah isi atau informasi yang akan kita tampilkan di dalam info window.