Lewati ke konten
RazinSaid

Cara Kirim Notifikasi Otomatis ke Telegram via Bot

RS
Razin Said
4 menit baca

Pernah kepikiran pengin server kamu langsung ngasih kabar ke HP pas ada error atau pas backup kelar? Nah, kirim notifikasi lewat bot Telegram itu cara paling gampang buat urusan ini. Telegram punya Bot API yang gratis, cepet, dan bisa dipanggil dari skrip apa pun. Di sini kita bakal bikin bot-nya, ambil token, nyari chat ID, terus kirim pesan otomatis pakai Node.js.

Kenapa Telegram buat Notifikasi?

Banyak developer milih Telegram, dan alasannya sederhana aja. API-nya terbuka dan nggak minta kartu kredit. Pesan juga masuk nyaris seketika ke semua perangkat yang lagi login. Belum lagi kamu bisa kirim teks, gambar, file, sampai tombol interaktif.

Coba bandingin sama email yang sering nyangkut di folder spam, atau SMS yang bayar. Buat monitoring server, ngintip hasil cron job, atau nerima alert dari aplikasi, Telegram jelas jauh lebih praktis.

Langkah 1: Bikin Bot lewat BotFather

Semua bot Telegram itu lahirnya dari satu bot resmi namanya BotFather. Gini caranya:

  1. Buka Telegram, cari @BotFather, terus mulai chat.
  2. Ketik perintah /newbot.
  3. Kasih nama bot kamu (bebas), lalu kasih username yang wajib diakhiri kata bot, misalnya notifikasi_server_bot.
  4. BotFather bakal bales dengan sebuah token. Bentuknya kayak gini 123456789:AAH4....

Token ini kunci rahasia, ya. Siapa pun yang pegang token ini bisa ngendaliin bot kamu, makanya jangan pernah di-commit ke Git atau disebar ke publik.

Langkah 2: Cari Chat ID Tujuan

Bot nggak bisa ngirim pesan ke orang yang belum pernah nyapa duluan. Jadi begini:

  1. Buka chat sama bot baru kamu, terus tekan Start atau kirim pesan apa aja, misalnya "halo".
  2. Buka URL ini di browser, ganti <TOKEN> sama token kamu:
https://api.telegram.org/bot<TOKEN>/getUpdates

Nanti kamu bakal lihat respons JSON. Cari bagian chat, terus ambil nilai id. Itu dia chat ID kamu, biasanya berupa angka kayak 987654321.

{
  "ok": true,
  "result": [
    {
      "message": {
        "chat": { "id": 987654321, "first_name": "Razin", "type": "private" },
        "text": "halo"
      }
    }
  ]
}

Kalau hasilnya kosong, coba cek lagi udah kirim pesan ke bot-nya belum. Kalau udah, tinggal muat ulang URL-nya.

Langkah 3: Kirim Pesan Pertama

Cara paling cepet buat nyoba pengiriman ya lewat curl di terminal:

curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" \
  -d chat_id=987654321 \
  -d text="Halo dari bot pertamaku!"

Kalau berhasil, pesannya bakal langsung nongol di chat Telegram kamu. Endpoint sendMessage inilah inti dari semua notifikasi yang bakal kita kirim nanti.

Langkah 4: Kirim dari Node.js

Sekarang kita pindah ke kode biar bisa dipanggil dari aplikasi atau skrip otomasi. Mulai Node.js versi 18 ke atas, fungsi fetch udah tersedia bawaan, jadi nggak perlu install library tambahan.

// kirim.js
const TOKEN = process.env.TELEGRAM_TOKEN;
const CHAT_ID = process.env.TELEGRAM_CHAT_ID;

async function kirimNotifikasi(pesan) {
  const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
  const res = await fetch(url, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      chat_id: CHAT_ID,
      text: pesan,
      parse_mode: "HTML",
    }),
  });

  const data = await res.json();
  if (!data.ok) {
    throw new Error(`Gagal kirim: ${data.description}`);
  }
  return data;
}

kirimNotifikasi("<b>Backup selesai</b> pukul " + new Date().toLocaleTimeString())
  .then(() => console.log("Notifikasi terkirim"))
  .catch((err) => console.error(err.message));

Ada dua hal yang perlu kamu perhatiin di sini. Yang pertama, token sama chat ID diambil dari environment variable, bukan ditulis langsung di kode. Jalaninnya begini:

TELEGRAM_TOKEN="123456789:AAH4..." TELEGRAM_CHAT_ID="987654321" node kirim.js

Yang kedua, kita pakai parse_mode: "HTML" biar teksnya bisa ditebelin pakai tag <b>. Telegram juga dukung mode Markdown kok, kalau kamu lebih sreg pakai itu.

Merapikan Format Pesan

Notifikasi yang bagus itu enak dibaca cuma sekilas. Nih beberapa tag HTML yang didukung Telegram:

  • <b>tebal</b> buat judul penting
  • <i>miring</i> buat catatan
  • <code>kode</code> buat nampilin nilai teknis
  • <a href="...">tautan</a> buat link

Contoh pesan alert yang rapi:

const pesan = [
  "<b>Server Alert</b>",
  "Status: <code>DOWN</code>",
  "Waktu: " + new Date().toISOString(),
].join("\n");

Gabungin sama Otomasi Lain

Notifikasi Telegram paling nendang kalau digabung sama tugas terjadwal. Kamu bisa manggil skrip ini dari otomasi tugas dengan cron job biar laporan harian kekirim otomatis tiap pagi. Kalau kamu lagi belajar ngambil data dari web juga, coba kombinasiin sama dasar web scraping dengan Node.js buat ngirim ringkasan harga atau berita ke Telegram.

FAQ

Apakah saya perlu server biar bot bisa ngirim pesan?

Nggak. Buat sekadar ngirim pesan, kamu tinggal panggil endpoint sendMessage aja. Server baru diperluin kalau kamu pengin bot-nya nerima dan bales pesan secara real-time lewat webhook.

Gimana caranya kirim ke grup, bukan ke pribadi?

Tambahin bot ke grup, kirim satu pesan di grup itu, terus cek getUpdates lagi. Chat ID grup biasanya berupa angka negatif, misalnya -1001234567890. Pakai angka itu sebagai chat_id.

Ada batasan nggak buat kirim pesan?

Ada. Telegram batasin sekitar 30 pesan per detik buat satu bot, dan batasnya lebih ketat lagi per grup. Tapi buat notifikasi biasa, batas segini hampir nggak bakal kerasa.

Penutup

Intinya, kirim notifikasi Telegram lewat bot cuma butuh tiga bahan: token dari BotFather, chat ID tujuan, dan satu panggilan ke sendMessage. Dari situ kamu bebas nyambungin ke aplikasi, cron job, atau pipeline apa pun.

Satu tips praktis: simpan fungsi kirimNotifikasi sebagai modul terpisah, terus panggil dari banyak skrip. Jadi kalau format pesan atau token-nya berubah, kamu tinggal ngedit di satu tempat aja.

Bagikan: XWhatsAppFacebookLinkedIn

Artikel terkait