آموزش کامل ساخت ربات تلگرام با پایتون از صفر تا اجرای دائمی

ربات تلگرامی که فقط روی لپ‌تاپ شما اجرا می‌شود، با بستن لپ‌تاپ ساکت می‌شود. بعضی آموزش‌ها همین‌جا تمام می‌شوند و شما را با یک اسکریپت نیمه‌کاره تنها می‌گذارند. این آموزش کامل ساخت ربات تلگرام با پایتون ادامه می‌دهد: از گرفتن توکن و نوشتن دستورها و دکمه‌ها شروع می‌کنیم و ربات را روی سروری می‌نشانیم که ۲۴ ساعته روشن است. فقط پایتون پایه لازم دارید. گردو کلاد این آموزش کامل ساخت ربات تلگرام را برای کسی نوشته که ربات واقعی می‌خواهد، نه نمونهٔ آزمایشی.

ربات تلگرام دقیقاً چطور کار می‌کند؟

ربات تلگرام یک برنامهٔ معمولی است که روی کامپیوتر یا سرور شما اجرا می‌شود و از راه اینترنت با Bot API تلگرام حرف می‌زند. تلگرام پیام‌های کاربران را برای ربات نگه می‌دارد. برنامهٔ شما یا خودش مرتب می‌پرسد «پیام تازه‌ای هست؟» (polling) یا آدرسی به تلگرام می‌دهد تا پیام‌ها را همان لحظه برایش بفرستد (webhook).

همهٔ درخواست‌ها با HTTPS و به آدرسی شبیه https://api.telegram.org/bot<token>/METHOD_NAME می‌روند. مستندات رسمی می‌گوید دریافت پیام با getUpdates و با webhook دو راه جدا از هم است و هم‌زمان کار نمی‌کنند. این نکتهٔ آموزش کامل ساخت ربات تلگرام را یادتان نگه دارید، چون بعداً در بخش خطاهای رایج سراغش برمی‌گردیم.

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

ربات‌هایی که با پایتون ساخته می‌شوند معمولاً یکی از چهار کار را می‌کنند: جواب خودکار به سؤال‌های تکراری، فرستادن اعلان از یک سرویس دیگر، گرفتن فرم یا سفارش، و ابزارهای کوچک مثل تبدیل واحد. برای شروع این آموزش کامل ساخت ربات تلگرام با پایتون، اولین پروژه را از همین چهار دسته انتخاب کنید و ساده نگهش دارید.

ساخت ربات تلگرام را می‌شود بدون هیچ کتابخانهٔ تخصصی و فقط با requests و چند درخواست دستی انجام داد، و بعضی آموزش‌های قدیمی دقیقاً همین راه را می‌روند. ولی آن‌وقت مدیریت offset، خطاها و دکمه‌ها با خودتان است. کتابخانه‌ای مثل python-telegram-bot همین کارها را برایتان انجام می‌دهد و ما در ادامهٔ این آموزش جامع ساخت ربات تلگرام با پایتون از آن استفاده می‌کنیم.

پیش‌نیازها و آماده‌سازی محیط کار پایتون

برای این آموزش کامل ساخت ربات تلگرام با پایتون سه چیز لازم دارید: پایتون ۳ (همراه با pip)، یک ویرایشگر کد و یک حساب تلگرام. نسخهٔ دقیقی که کتابخانه پشتیبانی می‌کند را از صفحهٔ آن روی PyPI بخوانید. نسخه‌های جدید پایتون ۳ معمولاً مشکلی ندارند.

در این آموزش کامل ساخت ربات تلگرام برای هر پروژه یک محیط مجازی می‌سازیم تا بسته‌های پروژه‌ها با هم قاطی نشوند. ماژول venv همراه خود پایتون می‌آید و چیزی برای نصب ندارد.

bash

bash
mkdir my-bot && cd my-bot
python -m venv .venv
source .venv/bin/activate        # ویندوز: .venv\Scripts\activate
pip install python-telegram-bot

یک نکته برای کسانی که قبلاً آموزشی خوانده‌اند. آموزش ساخت ربات تلگرام با پایتون رایگان زیاد پیدا می‌شود، ولی تاریخ انتشارش را نگاه کنید. کدی که با Updater(token) شروع می‌شود مال نسخه‌های قبل از ۲۰ است و روی نسخهٔ جدید همان‌طور که هست اجرا نمی‌شود. از نسخهٔ ۲۰ به بعد کتابخانه async شده و نقطهٔ شروعش کلاس Application است. ما با همین الگوی جدید کار می‌کنیم.

گرفتن توکن ربات از BotFather در پنج مرحله

BotFather ربات رسمی تلگرام برای ساختن و مدیریت ربات‌هاست. اولین قدم در آموزش کامل ساخت ربات تلگرام با پایتون همین است و کل کار چند دقیقه طول می‌کشد.

  1. در تلگرام @BotFather را جست‌وجو کنید و مطمئن شوید کنار نامش تیک تأیید هست، چون ممکن است ربات‌های تقلبیِ هم‌نام هم پیدا کنید.
  2. دستور /newbot را بفرستید تا BotFather اسم نمایشی ربات را از شما بپرسد.
  3. نام کاربری ربات را بدهید. این نام باید یکتا باشد و به bot ختم شود، مثلاً my_first_demo_bot.
  4. توکنی را که بعد از ساخته شدن ربات نمایش داده می‌شود کپی کنید و جای امنی نگه دارید.
  5. اگر توکن جایی لو رفت، با /revoke توکن تازه بگیرید تا قبلی باطل شود.

گرفتن توکن ربات از BotFather در آموزش کامل ساخت ربات تلگرام

اولین ربات: آموزش کامل ساخت ربات تلگرام با پایتون در یک فایل

برای ساخت ربات تلگرام با پایتون یک فایل main.py کافی است. این فایل توکن را از متغیر محیطی می‌خواند، دو handler ثبت می‌کند و با run_polling به تلگرام وصل می‌شود.

python

python
import os

from telegram import Update
from telegram.ext import (
    ApplicationBuilder,
    CommandHandler,
    ContextTypes,
    MessageHandler,
    filters,
)

TOKEN = os.environ["BOT_TOKEN"]


async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("سلام! من اولین رباتی هستم که ساختی.")


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


def main():
    app = ApplicationBuilder().token(TOKEN).build()
    app.add_handler(CommandHandler("start", start))
    app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
    app.run_polling()


if __name__ == "__main__":
    main()

حالا این بخش از آموزش کامل ساخت ربات تلگرام را خط‌به‌خط بخوانیم. ApplicationBuilder ربات را با توکن می‌سازد و build() یک Application برمی‌گرداند که همهٔ کار پشت صحنه را مدیریت می‌کند. هر handler یک شرط و یک تابع دارد: CommandHandler("start", start) یعنی «وقتی کاربر /start فرستاد، تابع start را صدا بزن». MessageHandler با فیلتر filters.TEXT & ~filters.COMMAND به هر پیام متنی که دستور نباشد جواب می‌دهد.

هر تابع async است و جواب را با await می‌فرستد. اگر await را جا بیندازید، پایتون اخطار «coroutine was never awaited» می‌دهد و پیامی نمی‌رود. رایج‌ترین اشتباهی که مبتدی‌ها در آموزش کامل ساخت ربات تلگرامی با پایتون می‌کنند همین است.

توکن را قبل از اجرا در محیط ترمینال تنظیم کنید و فایل را اجرا کنید.

bash

bash
export BOT_TOKEN="توکن-شما"        # ویندوز PowerShell: $env:BOT_TOKEN="توکن-شما"
python main.py

به ربات خودتان در تلگرام /start بفرستید. وقتی جواب گرفتید، اولین ربات شما زنده است. اگر ربات بالا نیامد و خطای اتصال یا timeout دیدید، معمولاً مشکل از دسترسی شبکهٔ شما به api.telegram.org است و نه از کد. همین موضوع در بخش اجرا روی سرور دوباره مهم می‌شود، چون هر آموزش ساخت ربات تلگرام با پایتون به آن می‌رسد.

خروجی اولین ربات در آموزش کامل ساخت ربات تلگرام با پایتون

برنامه‌نویسی ربات تلگرام با پایتون: دستورها، دکمه‌ها و ذخیرهٔ داده

ربات‌هایی که فقط پیام را تکرار می‌کنند کاربردی نیستند. برای رسیدن به آموزش کامل ساخت ربات تلگرام با پایتون باید از همین نقطه رد شوید. چیزی که ربات تلگرام با پایتون را مفید می‌کند دستورهای مشخص و منوی دکمه‌ای است، و برای هر دو، الگوی کار همان handlerهاست. یک handler تازه می‌نویسید و با add_handler ثبتش می‌کنید.

دکمه‌های شیشه‌ای (inline keyboard) زیر پیام ظاهر می‌شوند و با زدن هر کدام، تلگرام یک callback_query برای ربات می‌فرستد. در این بخش از آموزش کامل ساخت ربات تلگرام باید دو چیز بنویسید: تابعی که دکمه‌ها را نشان می‌دهد و تابعی که کلیک را می‌گیرد.

python

python
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import CallbackQueryHandler


async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
    keyboard = [
        [
            InlineKeyboardButton("درباره", callback_data="about"),
            InlineKeyboardButton("راهنما", callback_data="help"),
        ]
    ]
    await update.message.reply_text(
        "یکی را انتخاب کنید:", reply_markup=InlineKeyboardMarkup(keyboard)
    )


async def button(update: Update, context: ContextTypes.DEFAULT_TYPE):
    query = update.callback_query
    await query.answer()
    await query.edit_message_text(f"انتخاب شما: {query.data}")


# داخل main()، کنار handlerهای قبلی:
# app.add_handler(CommandHandler("menu", menu))
# app.add_handler(CallbackQueryHandler(button))

خط await query.answer() را حذف نکنید. تا این فراخوانی انجام نشود، دکمه در تلگرام مدتی در حالت «در حال بارگذاری» می‌ماند و کاربر فکر می‌کند ربات هنگ کرده است. برای گفت‌وگوی چندمرحله‌ای، مثل فرم ثبت‌نام که نام و شماره را یکی‌یکی می‌پرسد، سراغ ConversationHandler بروید. آن را بعد از همین دو الگو یاد بگیرید، نه قبل از آن.

بخش حساس‌تر آموزش کامل ساخت ربات تلگرام ذخیرهٔ داده است. هر چیزی که در context.user_data یا در متغیرهای معمولی نگه دارید فقط در حافظه است و با راه‌اندازی دوبارهٔ ربات پاک می‌شود. برای ربات کوچک، sqlite3 که همراه خود پایتون است کافی است و نیازی به نصب چیز دیگری ندارد. به PostgreSQL وقتی بروید که چند نمونه از ربات هم‌زمان اجرا می‌شود یا داده‌ها باید بین سرویس‌ها مشترک باشد. ما همین ترتیب را توصیه می‌کنیم: برای بسیاری از ربات‌های کوچک، SQLite تا مدت‌ها کافی است.

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

کدام کتابخانهٔ پایتون را برای ربات انتخاب کنیم؟

در جست‌وجوی آموزش ربات تلگرام با پایتون چند اسم مدام تکرار می‌شود. جدول زیر تفاوت اصلی‌شان را از نگاه کسی که تازه شروع می‌کند نشان می‌دهد.

کتابخانهسبک اجرامناسب براینقطهٔ ضعف
python-telegram-botasync با کلاس Application و handlerهای آمادهمبتدی‌هایی که مستندات کامل و نمونهٔ زیاد می‌خواهندباید الگوی async و await را بپذیرید
aiogramکاملاً async با Router و فیلترهای ماژولارپروژه‌های بزرگ‌تر که چند بخش جدا دارندقبل از اولین ربات مفاهیم بیشتری باید یاد بگیرید
pyTelegramBotAPIAPI ساده با نسخهٔ معمولی و نسخهٔ asyncاسکریپت‌های کوچک و ربات‌های سریعبا بزرگ شدن پروژه، ساختار را خودتان باید نگه دارید
درخواست مستقیم با requestsفراخوانی دستی متدهای Bot APIفهمیدن اینکه پشت صحنه دقیقاً چه می‌گذردمدیریت offset، خطا و دکمه‌ها به عهدهٔ خودتان است

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

انتخاب ما در این آموزش کامل ساخت ربات تلگرام برای مبتدی python-telegram-bot است، به دو دلیل. مستندات و نمونه‌کدهایش گسترده است و ساختار Application مسیر روشنی از اولین ربات تا ربات بزرگ‌تر می‌دهد. اگر بعداً به aiogram رفتید، بیشتر مفاهیم را همین‌جا یاد گرفته‌اید. جامعهٔ برنامه‌نویس‌ها دربارهٔ بهترین انتخاب اتفاق نظر ندارد و بعضی aiogram را از ابتدا ترجیح می‌دهند.

درخواست مستقیم با requests هم بی‌فایده نیست. یک بار با آن یک پیام بفرستید تا ببینید ساخت ربات تلگرام با پایتون در سطح پایین چه شکلی دارد. بعد به کتابخانه برگردید.

ساختار پروژه: چطور توکن لو نرود و دیپلوی ساده شود

یک فایل main.py برای شروع آموزش کامل ساخت ربات تلگرام با پایتون خوب است، ولی رباتی که به سرور می‌رود به چند فایل کنار آن نیاز دارد. ساختار زیر کوچک است و از دو دردسر جلوگیری می‌کند: لو رفتن توکن و نصب نشدن وابستگی‌ها روی سرور.

text

text
my-bot/
├── main.py
├── requirements.txt
└── .gitignore

فایل .gitignore را قبل از اولین commit بسازید و داخلش .venv/ و هر فایل محیطی مثل .env را بنویسید. توکن هرگز نباید وارد تاریخچهٔ گیت شود. بعد از commit کردن، حذف فایل کافی نیست و توکن در تاریخچه می‌ماند. این قاعده در هر آموزش کامل ساخت ربات تلگرام با پایتون باید اول بیاید، چون اشتباهش گران تمام می‌شود.

فایل requirements.txt به سرور می‌گوید چه چیزی نصب کند. ساده‌ترین راه در آموزش کامل ساخت ربات تلگرام با پایتون این است که بعد از تست موفق روی کامپیوتر خودتان pip freeze > requirements.txt را بزنید. آن‌وقت سرور دقیقاً همان نسخه‌هایی را نصب می‌کند که شما امتحان کرده‌اید، و یک به‌روزرسانی ناگهانیِ کتابخانه ربات را در سرور نمی‌شکند. این روش یک عیب دارد: فهرست بلند می‌شود و وابستگی‌های فرعی هم در آن می‌آید. اگر می‌خواهید فایل کوتاه بماند، فقط نام کتابخانهٔ اصلی را بنویسید و خودتان نسخهٔ آن را ثابت کنید.

وقتی پروژه در آموزش کامل ساخت ربات تلگرام با پایتون بزرگ‌تر می‌شود، می‌توانید کد را بین چند فایل تقسیم کنید، مثلاً یک فایل برای handlerها و یکی برای کار با دیتابیس. تا وقتی main.py از حدود چند صد خط بیشتر نشده، این کار را عقب بیندازید. تقسیم زودهنگام، یادگیری را سخت‌تر می‌کند.

لاگ و مدیریت خطا: بفهمید ربات چرا ساکت شد

رباتی که روی سرور اجرا می‌شود ترمینال ندارد که ببینید. تنها چیزی که از آن می‌دانید همان است که خودتان در لاگ نوشته‌اید. پس در هر آموزش جامع ساخت ربات تلگرام با پایتون باید قبل از دیپلوی لاگ را روشن کرد.

python

python
import logging

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


async def on_error(update: object, context: ContextTypes.DEFAULT_TYPE):
    logging.error("خطا در پردازش پیام", exc_info=context.error)


# داخل main():
# app.add_error_handler(on_error)

add_error_handler یک تابع می‌گیرد که هر وقت یکی از handlerها خطا بدهد صدا زده می‌شود. بدون آن، خطا فقط یک خط کوتاه در خروجی می‌گذارد که در شلوغی سرور گم می‌شود. با آن، هر خطا همراه traceback کامل ثبت می‌شود و می‌توانید بعداً پیدایش کنید. در هر آموزش کامل ساخت ربات تلگرام با پایتون این بخش باید باشد، چون ربات بدون لاگ در سرور فقط حدس‌زدن است.

یک عادت خوب دیگر در برنامه‌نویسی ربات تلگرام با پایتون: در handler اصلی چیزی شبیه logging.info("پیام از کاربر %s", update.effective_user.id) بنویسید. فقط شناسهٔ عددی کاربر را لاگ کنید، نه متن پیام و نه شمارهٔ تلفن. لاگ‌ها دیده می‌شوند و نگهداری می‌شوند، و داده‌های شخصی جایی در آن‌ها ندارد.

از آموزش کامل ساخت ربات تلگرام با پایتون تا اجرای ۲۴ ساعته روی سرور

رباتی که در این آموزش کامل ساخت ربات تلگرام با پایتون ساختیم، تا وقتی python main.py روی کامپیوتر شما در حال اجراست زنده است. با بستن ترمینال، خاموش شدن لپ‌تاپ یا قطع اینترنت، فرایند متوقف می‌شود و پیام‌های بعدی بی‌جواب می‌مانند. برای اجرای دائمی باید ربات را روی ماشینی بگذارید که همیشه روشن و وصل به اینترنت است.

polling یا webhook؟

برای اولین ربات polling را انتخاب کنید. دامنه و گواهی SSL نمی‌خواهد و کد همان است که نوشتیم. webhook وقتی ارزش دارد که ترافیک بالا باشد یا پلتفرم اجرایی فقط برنامه‌هایی را زنده نگه دارد که روی یک پورت HTTP پاسخ می‌دهند. Application متد run_webhook هم دارد و برای آن باید بسته را با pip install "python-telegram-bot[webhooks]" نصب کنید. یادتان هست که گفتیم دو روش دریافت پیام هم‌زمان کار نمی‌کنند؟ وقتی ربات را به webhook تغییر می‌دهید، دیگر روی همان توکن polling نزنید. ربات با webhook هم کار می‌کند، اما برای شروع لازم نیست و در این آموزش کامل ساخت ربات در تلگرام با پایتون سراغش نمی‌رویم.

ماشین را از کجا بگیریم؟

در آموزش کامل ساخت ربات تلگرام با پایتون، برای اجرای دائمی سه راه رایج هست. سرور مجازی (VPS) بیشترین کنترل را می‌دهد، ولی به‌روزرسانی سیستم‌عامل، فایروال و راه‌اندازی دوبارهٔ ربات بعد از ریبوت با خودتان است. هاست اشتراکی معمولاً برای وب‌سایت طراحی شده و ممکن است اجازهٔ اجرای فرایند طولانی را ندهد. راه سوم سکوی ابری یا PaaS است: کد را می‌دهید و سکو آن را بیلد و اجرا می‌کند.

برای مدیریت نکردن سرور، یک PaaS ایرانی مثل سکوی ابری گردو کلاد این مسیر را کوتاه می‌کند. بر اساس معرفی خود گردو کلاد، می‌توانید اپلیکیشن را از Git یا با CLI دیپلوی کنید و محل اجرا را بین ایران و خارج از ایران انتخاب کنید. برای رباتی که باید به api.telegram.org وصل شود، همین انتخاب محل اجرا مهم است. قبل از دیپلوی نهایی از داخل سرویس یک درخواست آزمایشی بزنید و مطمئن شوید پاسخ می‌گیرید.

اجرای ربات روی گردو کلاد

گردو کلاد هم پلن رایگان دارد و هم پلن پولی. برای رباتی که در این آموزش کامل ساخت ربات تلگرام با پایتون ساخته‌اید و فقط در حد آزمایش است، با همان پلن رایگان شروع کنید و وقتی ربات بزرگ شد، خرید سرویس PaaS با منابع بیشتر را در نظر بگیرید. محدودیت‌ها و قیمت‌ها را از صفحهٔ سرویس بخوانید، چون ممکن است عوض شوند.

مراحل کلی این آموزش کامل ساخت ربات تلگرام روی گردو کلاد این است:

  1. فایل requirements.txt را بسازید و حداقل python-telegram-bot را داخلش بنویسید تا سکو بداند چه چیزی نصب کند.
  2. توکن را به‌عنوان متغیر محیطی BOT_TOKEN برای سرویس تنظیم کنید و داخل کد یا مخزن Git نگذاریدش. CLI گردو دستورهایی برای مدیریت متغیرهای سرویس دارد.
  3. با gerdoo login وارد حساب شوید، سپس داخل پوشهٔ پروژه gerdoo deploy را بزنید. بر اساس مستندات سایت، ساخت و انتشار خودکار انجام می‌شود.
  4. اگر پلتفرم فرمان اجرا را پرسید، python main.py را بدهید.
  5. لاگ سرویس را با gerdoo logs ببینید. وقتی شروع موفق polling را در لاگ دیدید، به ربات /start بفرستید.

مشاهدهٔ لاگ ربات روی سرویس ابری در آموزش کامل ساخت ربات تلگرام

اگر هدفتان از این آموزش کامل ساخت ربات تلگرام با پایتون فقط یادگیری است، از پلن رایگان شروع کنید و منابع را در عمل بسنجید. بعضی‌ها به‌جای سکو ترجیح می‌دهند هاست معمولی بگیرند. اگر مسیر شما این است، پیش از خرید هاست پایتون بپرسید که اجرای یک فرایند دائمی (نه فقط وب‌اپ) روی آن مجاز است یا نه. در غیر این صورت ممکن است هاست ربات را بعد از مدتی متوقف کند.

بعد از دیپلوی: به‌روزرسانی بدون اختلال

اگر در این آموزش کامل ساخت ربات تلگرام با پایتون جلو آمده‌اید و ربات به مرحلهٔ کاربر واقعی رسیده، ربات زنده را با همان توکن تست نکنید. در BotFather یک ربات دوم برای توسعه بسازید و توکنش را فقط روی کامپیوتر خودتان استفاده کنید. دلیلش همان خطای Conflict است: اگر نسخهٔ لپ‌تاپ و نسخهٔ سرور با یک توکن polling کنند، هر دو برای گرفتن پیام‌ها با هم رقابت می‌کنند، خطای Conflict می‌گیرید و ممکن است پیام به نسخهٔ اشتباه برسد.

وقتی تغییری را روی ربات توسعه آزمودید، دوباره gerdoo deploy بزنید و لاگ را نگاه کنید. تغییرهای کوچک را زود به زود دیپلوی کنید، نه یکجا و بزرگ، تا اگر مشکلی پیش آمد بدانید از کدام تغییر است.

خطاهای رایج ربات تلگرام و راه‌حل هر کدام

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

  • خطای Conflict هنگام اجرا: معمولاً دو نمونه از ربات هم‌زمان polling می‌کنند، مثلاً یکی روی لپ‌تاپ و یکی روی سرور. یکی را متوقف کنید.
  • ربات هیچ جوابی نمی‌دهد و خطایی هم نیست: احتمالاً webhook روی آن توکن تنظیم شده و getUpdates نتیجه نمی‌دهد. webhook را حذف کنید یا از همان روش استفاده کنید.
  • اخطار coroutine was never awaited: جلوی یک تابع async کلمهٔ await جا افتاده و پیام ارسال نمی‌شود.
  • توکن در گیت لو رفته: از BotFather با /revoke توکن جدید بگیرید و فایل را از تاریخچهٔ مخزن هم پاک کنید، چون حذف ساده کافی نیست.
  • timeout و خطای اتصال: مسیر شبکهٔ ماشینی که ربات رویش اجراست به api.telegram.org بسته است. محل اجرا را عوض کنید یا برای شبکه راهی پیدا کنید.

پرسش‌های متداول دربارهٔ آموزش کامل ساخت ربات تلگرام

آموزش کامل ساخت ربات تلگرام با پایتون را از کجا شروع کنم؟

در آموزش کامل ساخت ربات تلگرام همه‌چیز از BotFather شروع می‌شود: ربات را بسازید، توکن بگیرید، پایتون و python-telegram-bot را نصب کنید و همان فایل main.py ساده را اجرا کنید. وقتی جواب /start را گرفتید، دستور و دکمه اضافه کنید و فقط در پایان سراغ دیتابیس و سرور بروید. یادگیری مرحله‌ای کمتر کلافه‌تان می‌کند.

آموزش ساخت ربات تلگرام با پایتون رایگان کافی است یا باید دوره بخرم؟

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

چرا ربات بعد از بستن ترمینال جواب نمی‌دهد؟

چون رباتی که با آموزش کامل ساخت ربات تلگرام با پایتون می‌سازید همان فرایند پایتون است و با بسته شدن ترمینال یا خاموش شدن کامپیوتر متوقف می‌شود. راه‌حل اجرای آن روی ماشینی است که همیشه روشن است، مثل سرور مجازی یا یک PaaS. توکن را هم همان‌جا به‌صورت متغیر محیطی تنظیم کنید.

برای ذخیرهٔ اطلاعات کاربران از چه دیتابیسی شروع کنم؟

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

جمع‌بندی و قدم بعدی

بعد از این آموزش کامل ساخت ربات تلگرام با پایتون می‌دانید ربات دقیقاً از کجا پیام می‌گیرد، چرا توکن را باید مخفی نگه دارید و چرا اسکریپتِ وابسته به لپ‌تاپ هنوز ربات واقعی نیست. حالا می‌توانید به‌جای کپی کردن کد قدیمی، با الگوی Application ربات بنویسید، دکمه و دیتابیس اضافه کنید و خطای Conflict یا سکوت ربات را از لاگ پیدا کنید. قدم بعدی ساده است: بعد از هر آموزش ساخت ربات تلگرام با پایتون، یک ربات کوچک برای کار روزمرهٔ خودتان بسازید و آن را روی سرور بگذارید. اگر می‌خواهید رباتی را که در این آموزش کامل ساخت ربات تلگرام با پایتون ساختید دائمی اجرا کنید، گردو کلاد با پلن رایگانش جای خوبی برای اولین دیپلوی است.

آماده شروع هستید؟

از گیت تا پروداکشن در چند دقیقه.

شروع رایگانمشاهده پلتفرم