Botxona

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'ri apiRoot yoki eskirgan token.
  • Sessiyalar saqlanmayapti — session fayli DATA_DIR ichida emas, loyihaning ildizida saqlanmoqda bo'lishi mumkin.
  • bot.launch() darhol tugab qoladi — kodning oxirida jarayonni to'xtatadigan qator (masalan process.exit()) yo'qligini tekshiring.

AI yordamida tezroq

Promptlar kutubxonasidagi tayyor topshiriqni AI'ga berib, mavjud Telegraf kodingizni bir necha soniyada moslatishingiz mumkin.

Keyingi qadam

Boshqaruv paneli bo'yicha tur va Xatoliklar va yechimlar.