Botxona

grammY botni Botxonaga joylash (Node.js)

grammY — Node.js/TypeScript uchun zamonaviy, tez o'sib borayotgan Telegram bot freymvorki. Botxona bilan ishlashi uchun apiRoot sozlamasi orqali proksiga ulanadi.

Qadamlar

1. Bot'ni apiRoot bilan yarating

const { Bot } = require("grammy")

const bot = new Bot(process.env.BOT_TOKEN, {
  client: { apiRoot: process.env.TELEGRAM_API_URL },
})

bot.command("start", (ctx) => ctx.reply("Salom! Men ishlayapman."))

bot.start()

TypeScript'da ham xuddi shunday, faqat import { Bot } from "grammy" bilan.

2. DATA_DIR'dan foydalaning

const path = require("path")
const fs = require("fs")

const DATA_DIR = process.env.DATA_DIR || "./data"
fs.mkdirSync(DATA_DIR, { recursive: true })
const dbPath = path.join(DATA_DIR, "bot.sqlite3")

3. package.json — "start" skripti va aniq versiyalar

{
  "name": "mening-botim",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "grammy": "1.30.0"
  }
}

"start" skripti bo'lishi muhim — Botxona avval shu skriptni qidiradi (kirish nuqtasi qoidasi).

4. .env.example va yuklash

Botingizga xos sozlamalarni .env.exampleda hujjatlashtirib, papkani ZIP qiling (node_modules ni qo'shmang — u avtomatik o'rnatiladi, batafsil) va panelga yuklang.

5. Tekshiruv va sinov

Natijani shu yerda tushunib, sinov rejimida Telegram'da tekshiring.

grammY runner (uzoq muddatli polling)

Yuqori yuklamali botlar uchun grammY'ning rasmiy @grammyjs/runner paketi tavsiya etiladi — u ko'proq bir vaqtdagi so'rovni boshqaradi. Bu Botxona bilan to'liq mos ishlaydi, chunki barcha so'rovlar baribir apiRoot orqali proksiga boradi.

node-cron yoki setInterval bilan rejalashtirish

Kunlik xabar yoki eslatma yuborish uchun node-cron yoki setInterval ishlatilsa, Botxona buni aniqlab botni doim yoniq holatga o'tkazadi. Batafsil: Uxlash va uyg'onish.

Tez-tez uchraydigan xatolar

  • GrammyError: 401 Unauthorized — token noto'g'ri, Token olish sahifasini ko'ring.
  • Cannot find module 'grammy' — package.jsonda grammy ro'yxatlanmagan yoki versiyasi noto'g'ri yozilgan.
  • Bot ishga tushmayapti, "start" skripti yo'q xatosi — package.jsonga "scripts": {"start": "node index.js"} qo'shing.

AI yordamida tezroq

Kodingizni Promptlar kutubxonasidagi tayyor topshiriq bilan AI'ga berib, avtomatik Botxona standartlariga moslatishingiz mumkin.

Keyingi qadam

Bot doim ishlashi uchun va Boshqaruv paneli bo'yicha tur.