Telegraf botni Botxonaga joylash (Node.js)
Telegraf — Node.js'da eng mashhur va uzoq vaqtdan beri ishlatilib kelinayotgan Telegram bot freymvorklaridan biri. Botxona bilan ishlashi uchun telegram.apiRoot sozlamasi kerak.
Qadamlar
1. Telegraf'ni apiRoot bilan yarating
const { Telegraf } = require("telegraf")
const bot = new Telegraf(process.env.BOT_TOKEN, {
telegram: { apiRoot: process.env.TELEGRAM_API_URL },
})
bot.start((ctx) => ctx.reply("Salom! Men ishlayapman."))
bot.launch()
process.once("SIGINT", () => bot.stop("SIGINT"))
process.once("SIGTERM", () => bot.stop("SIGTERM"))
2. Ma'lumotlarni DATA_DIR'da saqlang
Session yoki foydalanuvchi ma'lumotlarini saqlash uchun (masalan telegraf-session-local):
const path = require("path")
const DATA_DIR = process.env.DATA_DIR || "./data"
const { LocalSession } = require("telegraf-session-local")
const session = new LocalSession({ database: path.join(DATA_DIR, "sessions.json") })
bot.use(session.middleware())
3. package.json
{
"scripts": { "start": "node index.js" },
"dependencies": { "telegraf": "4.16.3" }
}
4. .env.example va yuklash
Sozlamalaringizni .env.exampleda yozib, papkani ZIP qiling (batafsil) va panelga yuklang.
5. Tekshiruv va sinov
Natijani shu yerda o'qing, so'ng 15 daqiqalik sinovda tekshiring.
Webhook o'rniga long-polling
Telegraf'ning bot.launch({ webhook: {...} }) rejimidan foydalanmang — Botxona o'zi long-polling orqali ishlaydi, setWebhook chaqirig'i e'tiborga olinmaydi va zarur ham emas. Oddiy bot.launch() (argumentsiz) yetarli.
Rejalashtirilgan vazifalar
node-cron yoki shunga o'xshash kutubxona bilan vaqt bo'yicha ishlaydigan vazifa qo'shsangiz, Botxona buni avtomatik aniqlab botni doim yoniq holatga o'tkazadi (batafsil).
Tez-tez uchraydigan xatolar
TelegramError: 404 Not Found— odatda noto'g'riapiRootyoki eskirgan token.- Sessiyalar saqlanmayapti — session fayli
DATA_DIRichida emas, loyihaning ildizida saqlanmoqda bo'lishi mumkin. bot.launch()darhol tugab qoladi — kodning oxirida jarayonni to'xtatadigan qator (masalanprocess.exit()) yo'qligini tekshiring.
AI yordamida tezroq
Promptlar kutubxonasidagi tayyor topshiriqni AI'ga berib, mavjud Telegraf kodingizni bir necha soniyada moslatishingiz mumkin.