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.jsondagrammyro'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.