Tulisan ini merupakan kelanjutan dari tulisan sebelumnya, antara lain: membuat bot Telegram untuk personal notifikasi dan membuat bot Telegram dengan framework Telegraf, dimana dalam kedua tulisan tersebut metode yang digunakan yaitu long polling.
Nah, kali ini kita akan membahas metode yang satunya yaitu webhook. Apa perbedaannya?
Secara singkat berikut ini penjelasan dari kedua metode tersebut.
Long polling
Kita harus melakukan atau meminta update secara terus menerus setiap N detik ke server Telegram untuk memeriksa apakah ada pesan yang masuk? Metode ini cocok bagi kita yg baru belajar bot atau sekedar iseng ingin membuat bot, karena cukup praktis bisa digunakan secara lokal, tidak perlu punya hosting ataupun layanan web service online lainnya untuk kontrakan si bot.
Webhook
Dalam metode ini kita tidak harus melakukan update secara terus menerus karena bot ditanam pada sebuah URL, jadi ketika ada pesan masuk, pesan tersebut akan diposting atau diteruskan ke URL yang telah kita setting untuk selanjutnya diproses oleh bot. Telegram mengharuskan URL ini HTTPS.
Tentunya untuk menggunakan metode ini kita harus mempunyai layanan VPS atau web service untuk tempat project si bot.
Mari kita lanjut pada prakteknya. Bagaimana? Apa kita akan menyewa server?
Tentu saja tidak. Untuk kebutuhan belajar untungnya banyak layanan-layanan web service yang dapat kita manfaatkan secara gratisan, salah satunya yaitu hook.io.
hook.io merupakan layanan web service untuk hosting webhook secara gratis untuk para developer. Bahasa pemrograman yang didukung cukup beragram, diantaranya: Javascript, Bash, PHP, Python, Ruby dan masih banyak lagi.
Fitur yang diberikan dalam layanan hook.io secara gratis yaitu:
- 1.000 request per bulan
- 20 services 20
- 1 API key
- timeout process hanya 10 detik
- open source, dalam artian code yang kita buat di hook.io dapat diakses secara public. Jadi orang lain bisa melihat, memodifikasi, ataupun yang lainnya 😅.
Meskipun demikian, untuk proses pembelajaran Saya kira fitur yang diberikan sudah lebih dari cukup.
Jadi bagi yang belum mempunyai akun hook.io, silahkan mendaftar terlebih dahulu.
Setelah berhasil mendaftar, selanjutnya pilih menu ⚙ Service > Env Vars.
Buat variable atau key baru dengan nama bot_token dan isikan
TOKEN
botnya pada value.Klik Save Account Environment Variables untuk menyimpannya.
Isikan nama endpoint sesuai dengan yang diinginkan. Dalam contoh ini Saya menamainya gorgom.
Ingat baik-baik nama endpoint nya karena nanti dibutuhkan pada saat menyetel webhook.
Sekarang salin kode berikut ini (simple echo bot), yaitu bot akan membalas pesan yang sama sesuai dengan apa yang kita kirimkan.
module['exports'] = function gorgomBot(hook) {
// impor modul request
var request = require('request');
// mengirimkan request ke server API telegram
request.post('https://api.telegram.org/bot' + hook.env.bot_token + '/sendMessage')
.form({
'chat_id': hook.params.message.chat.id,
'text': hook.params.message.text
});
}
Oke sekarang kita masuk ke tahapan menyetel webhook, buka browser kesayangan dan masukan alamat berikut:
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://hook.io/<username hook.io>/<nama service endpoint>
Jika tidak ada yang salah, maka tampilan hasilnya seperti dibawah ini dalam format JSON.
Dapat kita lihat
setWebhook
berhasil "Webhook was set".Sekarang kita memulai berinteraksi dengan bot yang sudah kita buat.
Contoh Saya mengirim pesan "Test Webhook".
Apakah bot membalasnya?
Ya, bot akan membalas sesuai dengan pesan apa yang kita kirim. Karena disini simple echo bot. Jadi pesan apapun yang kita kirim, bot akan membalas dengan pesan yang sama.
Sekian tutorial membuat bot telegram sederhana dengan metode webhook, sampai pada tahap ini minimal kita sudah paham mengenai perbedaan dua metode yang ada pada bot telegram. Saya sendiri baru-baru ini menggunakan metode yang kedua ini, jadi agar tidak lupa dikemudian hari, Saya dokumentasikan pada blog ini 😁.
Referensi: https://unnikked.ga
[Baca juga: Cara Membuat Bot Telegram (Coding dan Tanpa Coding)]
Pagi Pak Mau tanya,
ReplyDeleteapakah bisa pesan yang diterima oleh bot telegram di forward ke bot telegram lainnya?
Mohon penjelasannya, terima kasih
Secara default bot tidak bisa berinteraksi dengan bot, perlu akun khusus untuk menginteraksikan keduanya. Jika mau, feel free to contact me at Telegram, Saya menyediakan jasa untuk hal tersebut :)
Deletebang iky boleh minta kontak telegramnya?
DeleteBisa dilihat di laman Tentang Saya (About)
Deletetinggalkan jejak, simpan link dulu
ReplyDeletekalo bisa minta list2 web sejenis hook.io ya
Siap, insha Allah nanti sy update lagi. Thanks udah mampir mas :)
Deletegan ceritanya ane mau bikin bot trading di salah satu exchanger. Nah masalah nya exchanger itu membatasi 10 transaksi per IP. Pertanyaan nya. IP yang ke detect di server exchanger apakah IP hosting nya atau IP user yang pake bot itu ya. Jika bot trading ini di pake lebih dari 10 user akan kena banned karna IP nya sama.
ReplyDeleteKalo bot nya di hosting, yg terbaca IP hostingnya mas bukan IP user. Logika nya user kan cuma pakai bot aja, yg berinteraksi sama sistem ya bot yg di (hosting) nya
DeleteNyediain jasa pembuatan bot telegram ? Kalau ada mohon wa ya 082158903455 saya
ReplyDeleteAda om, Ok nanti sy kontek
Deletemakasih banyak bos, membantu membuat bot telegram
ReplyDeletesaya butuh jasa pembuatan script telegram bot untuk monitor server
ReplyDeletesend me massage : 089652192685
itu cuma support 1 script kah ???
ReplyDeletesaya noob soalnya
Betul om cuma 1 file
Delete