ساخت ربات تلگرام با پایتون، قدم به قدم

از BotFather توکن بگیرید، سورس ربات تلگرام با پایتون را اجرا کنید و پاسخ به دستورها و پیام‌ها را در رایانه و روی هاست آزمایش کنید. همراه ویدئوی آپارات.

ساخت ربات تلگرام با پایتون، قدم به قدم
ساخت ربات پاسخ‌گوی متنی با BotFather و python-telegram-bot؛ از توکن تا اجرا روی هاست.
فهرست مطالب

در این راهنما یاد می‌گیرید

  • ربات را با BotFather بسازید و توکن را در فایل خصوصی نگه دارید.
  • با سورس کامل، پاسخ به دستور و متن را در گفت‌وگوی خصوصی آزمایش کنید.
  • پس از تست محلی، پردازش ربات را روی هاست اجرا و مدیریت کنید.

۱. در BotFather ربات بسازید و توکن بگیرید

در این آموزش ساخت ربات تلگرام با پایتون، یک ربات پاسخ‌گو می‌سازیم. ربات به /start و /help پاسخ می‌دهد و متن را در گفت‌وگوی خصوصی تکرار می‌کند. برای اجرا، حساب تلگرام، Python نسخهٔ ۳.۱۰ یا جدیدتر و اتصال به Telegram Bot API لازم دارید.

  1. در تلگرام، BotFather رسمی را باز کنید و دستور /newbot را بفرستید.
  2. یک نام نمایشی و سپس نام کاربری یکتا با پسوند bot انتخاب کنید.
  3. توکن را برای مرحلهٔ تنظیم پروژه نگه دارید. اگر توکن افشا شد، آن را در BotFather باطل کنید و توکن تازه بگیرید.

ویدئوی آپارات برای مرحلهٔ BotFather

ویدئوی میکرولرن، ساخت ربات در BotFather را نشان می‌دهد. بخش ساخت ربات از دقیقهٔ ۳:۳۵ شروع می‌شود. تماشا در آپارات

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

۲. محیط پایتون و فایل‌های پروژه را آماده کنید

یک پوشه برای پروژه بسازید و ترمینال را در همان پوشه باز کنید. فایل requirements.txt را با این محتوا ذخیره کنید. نسخهٔ کتابخانهٔ اصلی را ثابت می‌کنیم تا کد نمونه با همان رابط اجرا شود.

requirements.txt
python-telegram-bot==22.8
python-dotenv
    

ویندوز در PowerShell

ایجاد محیط مجازی و نصب پکیج‌ها در ویندوز
py -3 --version
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
    

لینوکس و macOS

ایجاد محیط مجازی و نصب پکیج‌ها در لینوکس و macOS
python3 --version
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
    

کنار requirements.txt فایلی به نام .env بسازید و مقدار نمونه را با توکن خودتان جایگزین کنید. اگر از Git استفاده می‌کنید، .env و .venv/ را به .gitignore اضافه کنید.

.env؛ مقدار نمونه را با توکن خودتان جایگزین کنید
TELEGRAM_BOT_TOKEN=PASTE_YOUR_BOTFATHER_TOKEN_HERE
    

۳. سورس ربات تلگرام با پایتون را بنویسید

کد زیر را در فایل bot.py کنار .env ذخیره کنید. CommandHandler دستورها را به تابع مناسب می‌فرستد و MessageHandler متن معمولی را به تابع echo می‌رساند. فیلترها پاسخ‌گویی را به گفت‌وگوی خصوصی محدود می‌کنند.

bot.py؛ سورس کامل ربات پاسخ‌گوی متنی
import os
from pathlib import Path

from dotenv import load_dotenv
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters


async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    if update.effective_message:
        await update.effective_message.reply_text("سلام! یک پیام متنی بفرستید یا /help را بزنید.")


async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    if update.effective_message:
        await update.effective_message.reply_text("هر متن را در همین گفت‌وگو برایتان تکرار می‌کنم.")


async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
    message = update.effective_message
    if message and message.text:
        await message.reply_text(message.text)


def main():
    load_dotenv(Path(__file__).resolve().with_name(".env"))
    token = os.getenv("TELEGRAM_BOT_TOKEN", "").strip()
    if not token:
        raise SystemExit("Set TELEGRAM_BOT_TOKEN in .env before running the bot.")

    app = Application.builder().token(token).build()
    private_chat = filters.ChatType.PRIVATE
    app.add_handler(CommandHandler("start", start, filters=private_chat))
    app.add_handler(CommandHandler("help", help_command, filters=private_chat))
    app.add_handler(MessageHandler(private_chat & filters.TEXT & ~filters.COMMAND, echo))
    app.run_polling()


if __name__ == "__main__":
    main()
    

توابع پاسخ با async def تعریف شده‌اند و با await منتظر ارسال پاسخ می‌مانند. run_polling() برنامه را فعال نگه می‌دارد تا پیام‌های تازه را از تلگرام دریافت کند. مستندات polling در python-telegram-bot

۴. ربات را روی رایانه اجرا کنید

از همان پوشه، در PowerShell دستور .\.venv\Scripts\python.exe bot.py و در لینوکس یا macOS دستور .venv/bin/python bot.py را اجرا کنید. ترمینال را باز نگه دارید و گفت‌وگوی خصوصی ربات را در تلگرام باز کنید.

  1. /start را بفرستید و منتظر پیام خوش‌آمد باشید.
  2. /help را بزنید تا توضیح کوتاه ربات را ببینید.
  3. متنی مثل «سلام» بفرستید. ربات باید همان متن را برگرداند.

با Ctrl+C اجرای محلی را متوقف کنید. برای تمرین طراحی ربات تلگرام با پایتون، یک دستور مثل /about اضافه کنید. یک تابع پاسخ بنویسید و با CommandHandler آن را ثبت کنید.

۵. ربات پایتونی را روی هاست اجرا کنید

برای اینکه ربات با خاموش‌شدن رایانه همچنان پاسخ دهد، هاست ربات تلگرام یا محیط دیگری با امکان اجرای پیوستهٔ پردازش انتخاب کنید. پیش از راه‌اندازی روی هاست، اجرای محلی همان ربات را متوقف کنید.

  1. bot.py و requirements.txt را در پوشه‌ای خارج از public_html قرار دهید. فایل .env را خصوصی روی هاست بسازید.
  2. محیط مجازی را روی هاست از نو بسازید و وابستگی‌ها را نصب کنید. اجرای کوتاه در ترمینال کمک می‌کند اتصال به تلگرام و پاسخ به /start را بسنجید.
  3. اجرای دستی را متوقف کنید و برای اجرای مداوم، پردازش را با ابزار میزبان مثل BotCTL مدیریت کنید. بعد از بستن ترمینال، دوباره به ربات پیام بدهید و وضعیت و لاگ را ببینید.

برای مسیر دقیق آپلود، ساخت محیط مجازی و ثبت فرایند، آموزش اجرای ربات تلگرام روی هاست cPanel را دنبال کنید.

رفع خطاهای رایج ساخت ربات تلگرام

خطای ModuleNotFoundError: No module named 'telegram' یعنی چه؟

کتابخانه باید در همان محیطی نصب شود که bot.py را اجرا می‌کند. دستور نصب requirements.txt را با مفسر داخل .venv اجرا کنید. نام بسته python-telegram-bot است.

چرا خطای InvalidToken یا Unauthorized می‌گیرم؟

توکن و نام متغیر TELEGRAM_BOT_TOKEN را بررسی کنید. فایل .env باید کنار bot.py باشد. اگر توکن را در BotFather عوض کرده‌اید، مقدار تازه را وارد کنید و برنامه را دوباره اجرا کنید.

چرا هنگام polling خطای Conflict می‌گیرم؟

بررسی کنید فقط یک پردازش با این توکن polling می‌کند و webhook قبلی فعال نیست. اگر قصد دارید از webhook به polling برگردید، تنظیم webhook را با deleteWebhook بردارید. مستندات تغییر به polling

از آموزش تا اجرای پروژه

ربات پایتونی خود را روی هاست اجرا کنید

هاست ربات تلگرام با سرور آلمان، Terminal و مدیریت پردازش و لاگ با BotCTL.

مشاهدهٔ هاست ربات تلگرام ۳ روز تست رایگان

برای راه‌اندازی پروژه، پشتیبانی تخصصی پایتون هاست همراه شماست.

قدم بعدی شما

همهٔ آموزش‌ها
آموزش راه‌اندازی ربات تلگرام روی هاست cPanel
تلگرام · ۱۲ دقیقه

آموزش راه‌اندازی ربات تلگرام روی هاست cPanel

ربات پایتونی خود را روی cPanel اجرا کنید؛ از ورود به پنل و آپلود فایل‌ها تا نصب کتابخانه‌ها، تنظیم توکن و اجرای مداوم با BotCTL.

ادامهٔ آموزش
آموزش استفاده از ابزار BotCTL
مدیریت ربات · ۸ دقیقه

آموزش استفاده از ابزار BotCTL

راهنمای مبتدی مدیریت ربات با BotCTL؛ از ورود به cPanel و بازکردن Terminal تا ثبت ربات، اجرا، خواندن لاگ و فعال‌کردن راه‌اندازی خودکار.

ادامهٔ آموزش
هاست ربات تلگرام چیست و بهترین را چطور انتخاب کنیم؟
تلگرام · ۷ دقیقه

هاست ربات تلگرام چیست و بهترین را چطور انتخاب کنیم؟

هاست ربات تلگرام محیط اجرای کد ربات است. یاد بگیرید چطور روش دریافت پیام، نسخهٔ پایتون، دسترسی به تلگرام و پایداری سرویس را پیش از خرید بررسی کنید.

ادامهٔ آموزش