Membuat Bot Telegram dengan Metode Webhook


2018-04-21T08:05:19Z
Cara membuat bot Telegram Webhook

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.


Membuat Bot Telegram dengan Metode Webhook

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.

Membuat Bot Telegram dengan Metode Webhook


Klik Save Account Environment Variables untuk menyimpannya.

Selanjutnya membuat service baru, seperti dibawah ini.

Membuat Bot Telegram dengan Metode Webhook


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.

Membuat Bot Telegram dengan Metode Webhook

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)]

14 comments:

  1. Pagi Pak Mau tanya,
    apakah bisa pesan yang diterima oleh bot telegram di forward ke bot telegram lainnya?
    Mohon penjelasannya, terima kasih

    ReplyDelete
    Replies
    1. 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 :)

      Delete
    2. bang iky boleh minta kontak telegramnya?

      Delete
    3. Bisa dilihat di laman Tentang Saya (About)

      Delete
  2. tinggalkan jejak, simpan link dulu
    kalo bisa minta list2 web sejenis hook.io ya

    ReplyDelete
    Replies
    1. Siap, insha Allah nanti sy update lagi. Thanks udah mampir mas :)

      Delete
  3. gan 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.

    ReplyDelete
    Replies
    1. Kalo 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

      Delete
  4. Nyediain jasa pembuatan bot telegram ? Kalau ada mohon wa ya 082158903455 saya

    ReplyDelete
  5. makasih banyak bos, membantu membuat bot telegram

    ReplyDelete
  6. saya butuh jasa pembuatan script telegram bot untuk monitor server
    send me massage : 089652192685

    ReplyDelete
  7. itu cuma support 1 script kah ???

    saya noob soalnya

    ReplyDelete

Silahkan gunakan nama asli dalam berkomentar. Profil unknown / anonim tidak akan di-approve! Terima kasih.