پایتون به خاطر سینتکس (Syntax) بسیار تمیز، پشتیبانی قدرتمند از برنامهنویسی ناهمگام (Async/Await) و اکوسیستم غنی از کتابخانهها، استاندارد طلایی برای توسعه باتهای تلگرامی است. برخلاف زبانهای دیگر که ممکن است برای یک کار ساده نیاز به کدهای پیچیده داشته باشند، در پایتون با چند خط کد میتوانید یک سیستم پردازش پیام پیشرفته راهاندازی کنید.
پیش از هر چیز، مطمئن شوید که پایتون (نسخه ۳.۸ به بالا) روی سیستمتان نصب است. برای شروع، یک پوشه جدید بسازید و یک محیط مجازی (Virtual Environment) ایجاد کنید تا وابستگیهای پروژه ایزوله بمانند:
# ساخت محیط مجازی
python -m venv venv
# فعالسازی محیط مجازی (در ویندوز)
venv\Scripts\activate
# نصب کتابخانه رسمی و استاندارد python-telegram-bot
pip install python-telegram-bot
دریافت توکن از BotFather
برای ساخت ربات، به تلگرام بروید، ربات @BotFather را پیدا کنید، دستور /newbot را بفرستید، یک نام و یوزرنیم برای ربات خود انتخاب کنید تا در نهایت یک Token به شما بدهد. این توکن کلید دسترسی ربات شماست و باید آن را کاملاً محرمانه نگه دارید.
یک برنامهنویس حرفهای هیچگاه تمام منطق برنامهاش را در یک فایل تکهپاره و به شکل Spaghetti Code نمینویسد. ساختار پروژه ما به شکل زیر خواهد بود:
telegram_bot/
│
├── config.py # تنظیمات و توکنها
├── handlers.py # منطق پاسخ به پیامها و دستورات
└── main.py # نقطه ورود و راهاندازی ربات
گام اول: فایل تنظیمات (config.py)
بهتر است توکن ربات را مستقیماً در کد ننویسید و از متغیرهای محیطی استفاده کنید:
import os
# توکن ربات خود را اینجا قرار دهید یا از متغیر محیطی بخوانید
TOKEN = os.getenv("TELEGRAM_BOT_TOKEN", "YOUR_BOT_TOKEN_HERE")
گام دوم: پیادهسازی کنترلرها و هندلرها (handlers.py)
در اینجا فرمانهای کاربر (مثل /start) و پیامهای متنی را مدیریت میکنیم. از قابلیتهای ناهمگام پایتون (async/await) برای سرعت و بهینهسازی استفاده شده است:
from telegram import Update
from telegram.ext import ContextTypes
async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""پاسخ به دستور /start"""
user = update.effective_user
welcome_text = (
f"سلام {user.first_name} عزیز! 🤖\n\n"
"من ربات اختصاصی شما هستم که با پایتون پیادهسازی شدهام.\n"
"چطور میتوانم کمکتان کنم؟"
)
await update.message.reply_text(welcome_text)
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""پردازش پیامهای متنی ارسالی از طرف کاربر"""
text = update.message.text
response_text = f"پیام شما دریافت شد: «{text}»\nدر حال پردازش درخواست..."
await update.message.reply_text(response_text)
گام سوم: نقطه شروع و اجرای ربات (main.py)
در این فایل، اپلیکیشن تلگرام را مقداردهی کرده، هندلرها را ثبت میکنیم و ربات را در حالت Polling قرار میدهیم تا به درخواستهای کاربران گوش دهد:
import logging
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters
from config import TOKEN
from handlers import start_command, handle_message
# تنظیم سیستم لاگگیری برای ردیابی خطاها
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
level=logging.INFO
)
logger = logging.getLogger(__name__)
def main() -> None:
"""راهاندازی اصلی ربات"""
# ساخت اپلیکیشن
application = ApplicationBuilder().token(TOKEN).build()
# ثبت دستورات و هندلرها
application.add_handler(CommandHandler("start", start_command))
application.add_handler(MessageHandler(filters.TEXT & (~filters.COMMAND), handle_message))
# اجرای ربات به روش Long Polling
logger.info("ربات با موفقیت روشن شد و در حال اجراست...")
application.run_polling()
if __name__ == "__main__":
main()
برای اجرای ربات کافی است در ترمینال دستور زیر را وارد کنید:
python main.py
یک ربات حرفهای باید تعاملی باشد. برای اینکه به جای متن ساده، دکمههای شیشهای (Inline Keyboards) زیر پیامها قرار دهید، میتوانید کدهای زیر را به بخش هندلرها اضافه کنید:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
async def menu_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
keyboard = [
[InlineKeyboardButton("وبسایت ما", url="https://example.com")],
[InlineKeyboardButton("پشتیبانی", callback_data="support_click")]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_text("لطفاً یکی از گزینههای زیر را انتخاب کنید:", reply_markup=reply_markup)
وقتی ربات شما توسعه پیدا میکند و تعداد کاربرانش زیاد میشود، اجرای آن روی سیستم شخصی دیگر پاسخگو نیست. برای محیطهای واقعی (Production) باید نکات زیر را رعایت کنید:
نمونه فایل تنظیمات Docker برای کانتینریزیشن ربات پایتون:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"]
ساخت ربات با پایتون نهتنها بسیار لذتبخش است، بلکه دست شما را باز میگذارد تا هر نوع منطق تجاری، اتصال به هوش مصنوعی (مثل APIهای OpenAI)، یا اتوماسیونهای پیچیده را به سادگی پیادهسازی کنید. با رعایت اصول تمیزنویسی و معماری استاندارد، رباتی خواهید داشت که سالها بدون دردسر برای کسبوکار شما کار خواهد کرد.
0 نظر
هنوز نظری برای این مقاله ثبت نشده است.