Telegram botni qanday joylashtirish?
Bu qo'llanmada botni noldan yaratib EliteHost'ga joylashtirishni ko'rib chiqamiz. Boshlang'ich bilim yetarli — Linux yoki VPS tajribasi shart emas.
Telegram bot yaratish
Telegram'da @BotFather ni oching va /newbot buyrug'ini yuboring. BotFather sizdan ikkita narsani so'raydi:
- Bot nomi — foydalanuvchilar ko'radigan nom (masalan:
Mening Botim) - Username —
_botbilan tugashi shart (masalan:mening_botim_bot)
Muvaffaqiyatli yaratilgach BotFather sizga token beradi. U shunday ko'rinadi:
7123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsawTokenni hech kimga bermang
Bot kodini yozish
Quyida eng mashhur kutubxonalar uchun tayyor namunalar. Faylni main.py (Python) yoki index.js (Node.js) deb nomlang — tizim uni avtomatik topadi.
aiogram 3.xTavsiya etiladi
# main.py
import asyncio
import logging
import os
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
logging.basicConfig(level=logging.INFO)
# Token muhit o'zgaruvchisidan olinadi — kodga yozmang!
TOKEN = os.getenv("BOT_TOKEN")
if not TOKEN:
raise RuntimeError("BOT_TOKEN o'zgaruvchisi topilmadi")
dp = Dispatcher()
@dp.message(CommandStart())
async def start(message: types.Message) -> None:
await message.answer(
f"Salom, <b>{message.from_user.full_name}</b>! 👋\n"
"Men EliteHost'da ishlayapman."
)
@dp.message()
async def echo(message: types.Message) -> None:
await message.answer(message.text or "Matn yuboring")
async def main() -> None:
bot = Bot(TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())pyTelegramBotAPI
# main.py
import os
import telebot
TOKEN = os.getenv("BOT_TOKEN")
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=["start"])
def start(message):
bot.reply_to(message, "Salom! Men EliteHost'da ishlayapman.")
@bot.message_handler(func=lambda m: True)
def echo(message):
bot.reply_to(message, message.text)
# infinity_polling — tarmoq uzilsa avtomatik qayta ulanadi
bot.infinity_polling(skip_pending=True)python-telegram-bot
# main.py
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Salom! Men EliteHost'da ishlayapman.")
def main() -> None:
app = Application.builder().token(os.getenv("BOT_TOKEN")).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
if __name__ == "__main__":
main()Node.js (Telegraf)
// index.js
import { Telegraf } from 'telegraf';
const token = process.env.BOT_TOKEN;
if (!token) {
throw new Error("BOT_TOKEN o'zgaruvchisi topilmadi");
}
const bot = new Telegraf(token);
bot.start((ctx) => ctx.reply("Salom! Men EliteHost'da ishlayapman."));
bot.on('text', (ctx) => ctx.reply(ctx.message.text));
bot.launch();
// To'g'ri to'xtatish
process.once('SIGINT', () => bot.stop('SIGINT'));
process.once('SIGTERM', () => bot.stop('SIGTERM'));Bog'liqliklar faylini tayyorlash
Python loyihalari uchun requirements.txt yarating. Unda ishlatilgan kutubxonalar versiyasi bilan ko'rsatiladi:
aiogram==3.15.0Node.js uchun esa — package.json:
{
"name": "mening-botim",
"version": "1.0.0",
"type": "module",
"main": "index.js",
"dependencies": {
"telegraf": "^4.16.3"
}
}Versiyani qat'iy belgilang
aiogram==3.15.0 kabi aniq versiya yozing. Aks holda kutubxona yangilanganda botingiz kutilmaganda ishdan chiqishi mumkin.ZIP arxiv tayyorlash
Loyiha papkangiz shunday ko'rinishi kerak:
mening-botim/
├── main.py ← kirish fayli
├── requirements.txt ← bog'liqliklar
├── handlers/ ← qo'shimcha modullar (ixtiyoriy)
│ └── admin.py
└── data/ ← ma'lumot fayllari (ixtiyoriy)Papka ichidagi fayllarni belgilab ZIP qiling (papkaning o'zini emas — lekin tizim ikkala holatni ham to'g'ri tushunadi).
Arxivga qo'shmang
- ·
venv/,.venv/— virtual muhit - ·
node_modules/— serverda o'rnatiladi - ·
.env— tokenlarni panel orqali kiriting - ·
__pycache__/,.git/
EliteHost'ga yuklash
- Boshqaruv panelida Yangi server → Bot Hosting tarifini tanlang
- Muhitni tanlang: Python yoki Node.js
- Versiyani tanlang (Python 3.12 tavsiya etiladi)
- ZIP faylni yuklang
Yuklash tugagach Elite AutoDeploy arxivni tahlil qiladi va sizga natijani ko'rsatadi:
Muhit o'zgaruvchilarini kiritish
Sozlamalar → Muhit o'zgaruvchilari bo'limiga o'ting va kerakli qiymatlarni kiriting:
BOT_TOKEN=7123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
ADMIN_ID=123456789
DATABASE_URL=sqlite:///data/bot.dbBu qiymatlar bazada AES-256-GCM bilan shifrlanadi va faqat konteyner ichida ochiladi.
Ishga tushirish va tekshirish
🚀 Botni ishga tushirish tugmasini bosing. Tizim ketma-ket:
- Serverni yaratadi (~30 soniya)
- Fayllarni yuklaydi
- Bog'liqliklarni o'rnatadi
- Botni ishga tushiradi
Butun jarayon jonli loglar bilan ko'rsatiladi. Tugagach Telegram'da botingizga /start yuboring.
Bot javob bermayaptimi?
Keng tarqalgan xatolar
Unauthorized / 401Sabab: BOT_TOKEN noto'g'ri yoki bekor qilingan.
Yechim: @BotFather dan tokenni qayta oling va Muhit o'zgaruvchilari bo'limida yangilang.
ModuleNotFoundError: No module named 'aiogram'Sabab: Kutubxona requirements.txt faylida ko'rsatilmagan.
Yechim: requirements.txt ga qo'shing va «Bog'liqliklarni qayta o'rnatish» tugmasini bosing.
Conflict: terminated by other getUpdates requestSabab: Xuddi shu token bilan bot boshqa joyda ham ishlayapti.
Yechim: Kompyuteringizdagi yoki boshqa serverdagi nusxani to'xtating.
Killed / MemoryErrorSabab: Bot tarifdagi RAM limitidan oshdi.
Yechim: Yuqoriroq tarifga o'ting yoki katta ma'lumotlarni bazaga ko'chiring.
Tayyormisiz?
Botingizni bir necha daqiqada joylashtiring. Oyiga 29 000 so'mdan boshlab.
Bot hosting tariflari