Cara Membuat Bot Telegram: dari BotFather sampai Pesan Pertama
Cara membuat bot telegram cukup singkat: buka @BotFather, kirim perintah /newbot, isi nama dan username, lalu simpan token yang diberikan. Dengan token itu kamu sudah bisa memanggil Telegram Bot API, gratis dan tanpa server. Panduan ini membahas semua langkahnya, dari membuat bot sampai mengirim pesan pertama dengan curl dan Python.
Yang kamu butuhkan
- Akun Telegram (aplikasi di HP atau Telegram Desktop).
- Terminal dengan
curl, atau Python 3 dengan libraryrequests. - Kalau belum mau menulis kode, semua langkah bisa dicoba di browser lewat Bot API Tester.
Langkah 1: membuat bot telegram di @BotFather
@BotFather adalah bot resmi Telegram untuk membuat dan mengelola bot. Pastikan kamu membuka akun yang benar: @BotFather dengan centang biru.
- Buka @BotFather lalu tekan Start.
- Kirim
/newbot. - Masukkan nama bot, misalnya Toko Kopi. Nama boleh memakai spasi dan bisa diganti kapan saja dengan
/setname. - Masukkan username: 5–32 karakter, hanya huruf Latin, angka, dan underscore, serta wajib diakhiri
bot, contohnyatokokopi_botatauTokoKopiBot. Username tidak bisa diubah nanti, jadi pilih dengan hati-hati. Kalau sudah dipakai orang lain, BotFather akan meminta username lain. - BotFather membalas dengan link ke bot kamu dan token untuk mengakses HTTP API.
Langkah 2: simpan token bot
Token bentuknya seperti 123456789:AAEexampleTokenReplaceWithYours: angka ID bot, titik dua, lalu bagian rahasia. Siapa pun yang memegang token bisa mengendalikan bot kamu, jadi jangan unggah token ke repositori publik atau kode frontend. Simpan di environment variable atau file .env. Cara melihat token lagi, mengeceknya, dan mencabutnya ada di panduan token bot Telegram.
Langkah 3: cek token dengan getMe
Metode getMe adalah cara paling cepat untuk memastikan token valid. Semua request ke Bot API memakai format https://api.telegram.org/bot<token>/NAMA_METODE. Perhatikan awalan bot sebelum token.
curl https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/getMe
Kalau token benar, hasilnya "ok": true beserta data bot:
{
"ok": true,
"result": {
"id": 123456789,
"is_bot": true,
"first_name": "Toko Kopi",
"username": "tokokopi_bot"
}
}
Kalau token salah atau sudah dicabut, API membalas 401 Unauthorized. Tidak punya terminal? Buka getMe di Bot API Tester, tempel token, lalu jalankan.
Langkah 4: kirim pesan pertama
Bot tidak bisa memulai obrolan lebih dulu. Karena itu kamu perlu mengirim pesan ke bot, lalu mengambil chat id dari update yang masuk.
- Buka bot kamu di Telegram (cari username-nya) dan tekan Start, atau kirim
/start. - Panggil
getUpdatesuntuk melihat pesan tersebut:curl https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/getUpdates - Cari nilai
message.chat.iddi hasilnya, misalnya123456789. Itulahchat_idkamu. Bisa juga dicek di getUpdates di Bot API Tester. - Kirim pesan dengan
sendMessage:
curl -X POST "https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/sendMessage" \
-H "Content-Type: application/json" \
-d '{"chat_id": 123456789, "text": "Halo, ini pesan pertama dari bot"}'
Versi Python dengan requests (pip install requests):
import os
import requests
TOKEN = os.environ["BOT_TOKEN"] # jangan tulis token langsung di kode
CHAT_ID = 123456789
resp = requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": "Halo dari Python"},
timeout=10,
)
print(resp.json())
Kalau pesan muncul di Telegram, bot kamu sudah jalan. Format teks, tombol inline, dan pengiriman ke grup dibahas di panduan kirim pesan bot Telegram.
Opsional: deskripsi dan daftar perintah
/setdescriptionmengatur teks "What can this bot do?" yang tampil saat chat dengan bot masih kosong (maksimal 512 karakter)./setabouttextmengatur bio singkat di profil bot (maksimal 120 karakter)./setcommandsmengatur daftar perintah yang muncul saat pengguna mengetik/. Kirim satu perintah per baris dengan formatstart - Mulai bot.
Daftar perintah juga bisa diatur dari kode dengan metode setMyCommands (maksimal 100 perintah):
curl -X POST "https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/setMyCommands" \
-H "Content-Type: application/json" \
-d '{"commands": [{"command": "start", "description": "Mulai bot"}, {"command": "help", "description": "Bantuan"}]}'
Langkah berikutnya: polling, webhook, dan library
Agar bot bisa membalas otomatis, program kamu harus menerima update terus-menerus. Ada dua cara yang tidak bisa dipakai bersamaan:
- Long polling dengan
getUpdates: program bertanya ke Telegram secara berkala. Paling mudah untuk belajar dan bisa jalan di laptop tanpa domain. - Webhook: Telegram mengirim setiap update ke URL HTTPS milikmu. Cocok untuk server produksi. Lihat panduan webhook Telegram bot.
Untuk bot sungguhan, gunakan library yang sudah menangani polling, webhook, dan routing perintah:
| Bahasa | Library populer |
|---|---|
| Python | python-telegram-bot, aiogram, pyTelegramBotAPI |
| Node.js | grammY, Telegraf |
| Go | telebot, go-telegram-bot-api |
Kalau bot kamu butuh antarmuka web penuh di dalam Telegram, pelajari Mini Apps dan uji halamannya dengan Mini App Tester.
Masalah yang sering muncul
- Username ditolak. Pastikan panjangnya 5–32 karakter, hanya berisi huruf Latin, angka, atau underscore, diakhiri
bot, dan belum dipakai. 401 Unauthorized. Token salah ketik, terpotong saat disalin, ada spasi di ujungnya, atau token sudah dicabut.getUpdatesmengembalikan"result": []. Belum ada pesan baru. Kirim pesan lagi ke bot lalu ulangi. Update hanya disimpan maksimal 24 jam.- Error
409 ConflictsaatgetUpdates. Bot masih memakai webhook. PanggildeleteWebhooklalu coba lagi. - Bot tidak melihat pesan di grup. Secara default privacy mode aktif: di grup, bot hanya menerima perintah yang ditujukan kepadanya (misalnya
/start@tokokopi_bot) dan balasan ke pesannya. Ubah dengan/setprivacyatau jadikan bot admin.
Referensi lengkap ada di dokumentasi resmi BotFather dan Telegram Bot API.
Pertanyaan umum
Apakah membuat bot Telegram harus bisa coding?
Mendaftarkan bot di @BotFather tidak butuh coding. Tapi agar bot bisa membalas pesan, harus ada program atau tool otomasi yang memanggil Bot API dengan token bot tersebut.
Apakah username bot Telegram bisa diganti?
Tidak. Username bot tidak bisa diubah setelah dibuat. Yang bisa diganti adalah nama tampilan lewat /setname. Kalau butuh username lain, buat bot baru.
Bagaimana cara membuat bot telegram dengan Python?
Buat bot di @BotFather, simpan token di environment variable, lalu panggil Bot API dengan library requests atau gunakan library khusus seperti python-telegram-bot, aiogram, atau pyTelegramBotAPI.
Kenapa bot saya tidak membalas pesan?
Bot baru di @BotFather hanyalah akun. Bot baru membalas jika ada program yang berjalan: menerima update lewat getUpdates atau webhook, lalu memanggil sendMessage.
Bagaimana cara menghapus bot Telegram?
Kirim /deletebot ke @BotFather dan pilih botnya. Bot dihapus dan username-nya bisa dipakai lagi. Tindakan ini tidak bisa dibatalkan.
Panduan terkait
Kirim Pesan Bot Telegram dengan Telegram Bot API (sendMessage)
Kirim pesan bot telegram lewat Bot API: contoh sendMessage dengan curl, Python, dan JavaScript, format HTML/MarkdownV2, tombol inline, dan solusi error.
Telegram Bot Token: Cara Mendapatkan, Mengecek, dan Mencabut Token
Cara mendapatkan token bot telegram dari @BotFather, melihat token bot lama, mengecek dengan getMe, dan me-revoke token yang bocor. Lengkap dengan contoh.
Webhook Telegram Bot: Cara Setting setWebhook, Secret Token, dan Mengatasi Error
Panduan webhook telegram bot: syarat HTTPS dan port, setWebhook dengan secret_token, cek getWebhookInfo, deleteWebhook, serta solusi error 409 dan n8n.
Chat ID Telegram Dimana? Cara Mendapatkan Chat ID User, Grup, dan Channel
Chat id telegram dimana? Cara mendapatkan chat id user, grup, supergroup, dan channel lewat getUpdates, plus solusi saat result kosong atau error 409.