Skip to content

Bot Telegram

Kendalikan WAQ langsung dari Telegram — kirim pesan, broadcast, cek device — lewat menu tombol (bukan ngetik command). Opsional: hanya aktif untuk akun yang menautkan Telegram-nya sendiri.

Untuk pengguna

  1. Buka dashboard WAQ → menu Bot Telegram → klik Hubungkan Telegram.

  2. Muncul tombol "Buka di Telegram" (deep-link berlaku 10 menit, sekali pakai) → tap → tekan Start di bot.

  3. Bot balas "Berhasil terhubung ✅" — ketik /menu kapan saja:

    📤 Kirim Pesan │ 📢 Broadcast │ 📱 Cek Device │ 👥 Kontak │ 🔌 Putuskan Koneksi

Guardrail bawaan:

  • Kirim/broadcast selalu minta konfirmasi eksplisit (✅ Ya, Kirim / ❌ Batal) sebelum benar-benar dieksekusi — tidak ada aksi satu-tap.
  • Broadcast dari bot hanya ke kontak opt-in (aturan yang sama dgn dashboard).
  • Sesi wizard kedaluwarsa 10 menit — kalau macet, ketik /menu untuk mulai ulang.
  • Ganti HP/akun Telegram? Ulangi langkah "Hubungkan" — tautan lama otomatis diganti (1 akun WAQ ↔ 1 akun Telegram).

Putuskan koneksi kapan pun dari menu bot (🔌) atau dashboard (menu Bot Telegram → Putuskan).

Untuk admin (aktivasi bot — sekali setup)

Bot dinonaktifkan secara default (TELEGRAM_BOT_ENABLED=false). Mengaktifkannya:

  1. Buat bot via @BotFather di Telegram: /newbot → ikuti petunjuk → dapat token (format 123456:ABC-…) dan username bot.

  2. Isi 5 env var di .env server (/opt/waq/.env di VPS):

    bash
    TELEGRAM_BOT_ENABLED=true
    TELEGRAM_BOT_TOKEN=123456:ABC-…          # dari BotFather
    TELEGRAM_BOT_USERNAME=waq_bot            # tanpa '@'
    TELEGRAM_WEBHOOK_URL=https://waq.karyawah.id/webhooks/telegram
    TELEGRAM_WEBHOOK_SECRET=<random 32+ char> # openssl rand -hex 32
  3. Restart container app:

    bash
    cd /opt/waq && docker compose up -d app
  4. Verifikasi — log container harus menunjukkan webhook terpasang:

    bash
    docker logs waq-app --tail 20 | grep -i telegram
    # ✅ "Webhook Telegram terpasang: https://…"
    # ❌ "Bot Telegram nonaktif (TELEGRAM_BOT_ENABLED != true)" → env belum kebaca

Keamanan: update dari Telegram diverifikasi via header X-Telegram-Bot-Api-Secret-Token (constant-time compare) — request tanpa secret yang cocok ditolak 401. Identitas user di-resolve server-side dari tautan akun, tidak pernah dipercaya dari payload.