سایر بخش‌ها

مقاله

آموزش ساخت ربات تلگرام با Python

آموزش گام‌به‌گام ساخت اولین ربات تلگرام با Python 3.11 و کتابخانه python-telegram-bot — از ساخت بات در BotFather تا اجرای دستور /start با کد تست‌شده.

آموزش ساخت ربات تلگرام با Python

تیم فنی Source360 — این آموزش توسط توسعه‌دهندگان Source360 نوشته و روی Python 3.11 + Ubuntu 22.04 و Windows 11 تست شده است. محصولات ربات تلگرام ما در فروشگاه سورس موجود است.

ساخت ربات تلگرام با Python — خلاصه ۴ گام:

  1. ساخت بات در BotFather و دریافت توکن
  2. نصب python-telegram-bot در محیط مجازی Python
  3. نوشتن bot.py با CommandHandler
  4. اجرای بات با run_polling() و تست /start

فهرست مطالب

  1. پیش‌نیازها
  2. ساخت بات در BotFather
  3. نصب و ساختار پروژه
  4. نوشتن اولین ربات
  5. مقایسه کتابخانه‌ها
  6. Polling و Webhook
  7. گام‌های بعدی
  8. عیب‌یابی
  9. سوالات متداول
  10. جمع‌بندی

کاربر تلگرام → Telegram Bot API → bot.py (Python) → پاسخ به کاربر

شکل ۱ — جریان کار ربات تلگرام با Python

پیش‌نیازهای ساخت ربات تلگرام با Python

قبل از شروع ساخت ربات تلگرام با Python، این موارد را آماده کنید:

  • Python 3.11 یا بالاتر — بررسی: python --version
  • حساب فعال Telegram
  • آشنایی پایه با Terminal و pip
  • اتصال اینترنت پایدار (برای getUpdates در حالت Polling)

اگر تازه با پایتون آشنا می‌شوید، مستندات Python و Telegram Bot API و مستندات python-telegram-bot سه منبع اصلی شما هستند. برای پروژه‌های آماده، خدمات توسعه Source360 را هم ببینید.

ساخت بات در BotFather

BotFather ربات رسمی تلگرام برای مدیریت Bot Entityهاست. هر بات یک API Token منحصربه‌فرد دارد.

  1. در تلگرام به @BotFather بروید.
  2. /newbot → نام نمایشی → username با پسوند bot
  3. توکن را کپی کنید — شبیه: 7123456789:AAH...
  4. اختیاری: /setdescription و /setcommands برای منوی بات

امنیت: توکن را در .env بگذارید، نه در کد. افشای توکن = دسترسی کامل مهاجم به بات شما. اگر لو رفت، فوراً از BotFather با /revoke باطل کنید.

نصب کتابخانه و ساختار پروژه Python

mkdir telegram-bot && cd telegram-bot
python -m venv venv
venv\Scripts\activate          # ویندوز
# source venv/bin/activate   # لینوکس
pip install "python-telegram-bot==21.6" python-dotenv

فایل requirements.txt:

python-telegram-bot==21.6
python-dotenv==1.0.1
telegram-bot/
├── .env
├── .gitignore
├── bot.py
└── requirements.txt

فایل .gitignore:

venv/
.env
__pycache__/
*.pyc

فایل .env:

BOT_TOKEN=توکن_دریافتی_از_BotFather

نوشتن اولین ربات — کد کامل bot.py

در python-telegram-bot نسخه ۲۱، همه Handlerها async هستند. این کد را تیم Source360 روی Python 3.11 تست کرده است:

import os
import logging
from dotenv import load_dotenv
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes

load_dotenv()
logging.basicConfig(
    format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    level=logging.INFO,
)

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
  user = update.effective_user
  await update.message.reply_text(
    f"سلام {user.first_name}! من اولین ربات تلگرام شما هستم.\n"
    "دستور /help را بزنید."
  )

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
  await update.message.reply_text(
    "دستورات:\n/start — شروع\n/help — راهنما"
  )

def main() -> None:
  token = os.getenv("BOT_TOKEN")
  if not token:
    raise ValueError("BOT_TOKEN در .env تنظیم نشده است.")
  app = Application.builder().token(token).build()
  app.add_handler(CommandHandler("start", start))
  app.add_handler(CommandHandler("help", help_command))
  print("بات در حال اجرا... Ctrl+C برای توقف")
  app.run_polling(allowed_updates=Update.ALL_TYPES)

if __name__ == "__main__":
  main()
python bot.py

در تلگرام به بات بروید و /start بزنید. اگر پیام خوش‌آمد دریافت کردید، ساخت ربات تلگرام با Python با موفقیت انجام شده است.

نکته: برای دریافت chat_id، موقتاً print(update.effective_chat.id) در تابع start بگذارید. به chat_id برای ارسال پیام گروهی یا کانال نیاز دارید.

مقایسه کتابخانه‌های Python برای Telegram Bot

کتابخانهمدلنقطه قوتمناسب برای
python-telegram-botasyncمستندات رسمی، جامعه بزرگپروژه production
aiogramasyncMiddleware، FSM قویبات‌های پرترافیک
pyTelegramBotAPIsync/asyncسینتکس سادهپروتوتایپ سریع

برای یادگیری عمیق Telegram Bot API، python-telegram-bot بهترین نقطه شروع است. اگر به سورس آماده نیاز دارید، محصولات ربات تلگرام Source360 شامل بات‌های تست‌شده با پشتیبانی فارسی است.

Polling در مقابل Webhook — کدام را انتخاب کنیم؟

روشمکانیزممناسب
Pollingبات مرتب getUpdates می‌زندتوسعه محلی، تست
Webhookتلگرام Update را به URL سرور POST می‌کندproduction، هاست cPanel

روی هاست اشتراکی ایران معمولاً Webhook با HTTPS لازم است. برای اتصال بات به فروشگاه وردپرس، افزونه‌های اختصاصی Source360 این کار را ساده می‌کنند.

گام‌های بعدی — توسعه ربات تلگرام

بعد از اولین بات، این قابلیت‌ها را اضافه کنید:

  • Inline Keyboard — دکمه‌های شیشه‌ای زیر پیام
  • MessageHandler — پاسخ به متن آزاد، نه فقط دستور
  • ConversationHandler — گفتگوی چندمرحله‌ای (فرم سفارش)
  • اتصال دیتابیس — SQLite یا PostgreSQL برای ذخیره کاربران
  • Webhook روی سرور — برای استقرار روی سرور اختصاصی

اگر وقت کافی ندارید، سورس آماده ربات تلگرام را از Source360 بگیرید و سفارشی‌سازی کنید.

عیب‌یابی رایج ربات تلگرام Python

  • 401 Unauthorized — توکن اشتباه؛ /token در BotFather
  • بات پاسخ نمی‌دهدrun_polling() اجرا نیست یا فایروال
  • Conflict: other getUpdates — دو نمونه bot.py همزمان
  • ModuleNotFoundError — venv فعال نیست یا pip install نشده
  • Webhook SSL error — گواهی HTTPS نامعتبر روی دامنه

سوالات متداول درباره ساخت ربات تلگرام با Python

ربات تلگرام با Python چقدر زمان می‌برد؟

برای اولین بات با /start، ۳۰ تا ۶۰ دقیقه — شامل BotFather و کدنویسی.

بهترین کتابخانه Python برای ربات تلگرام کدام است؟

python-telegram-bot برای production و pyTelegramBotAPI برای شروع سریع.

آیا ساخت ربات تلگرام رایگان است؟

بله. Telegram Bot API رایگان است؛ هزینه فقط سرور در Webhook است.

Polling یا Webhook برای شروع بهتر است؟

Polling برای لپ‌تاپ؛ Webhook برای سرور با HTTPS.

چطور توکن بات را امن نگه دارم؟

.env + .gitignore — هرگز commit نکنید.

آیا می‌توان ربات را به وردپرس وصل کرد؟

بله — با افزونه یا Webhook. محصولات در فروشگاه Source360.

جمع‌بندی

در این آموزش ساخت ربات تلگرام با Python را از BotFather و Telegram Bot API تا اجرای run_polling() با python-telegram-bot پوشش دادیم. گام بعدی: Inline Keyboard، Webhook روی سرور، یا سورس آماده از Source360.

مطالب مرتبط: بلاگ فنی Source360 · خدمات توسعه · صفحه اصلی

نیاز به سورس آماده دارید؟

ربات‌های تست‌شده تلگرام و افزونه وردپرس — با پشتیبانی فارسی

مشاهده فروشگاه Source360

نظرات کاربران

فقط نظرات تاییدشده مدیر نمایش داده می‌شود.

0 نظر تاییدشده
هنوز نظری برای این مطلب منتشر نشده است.