X

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

دستورات کاربر و مدیریت آنها

در این بخش، یاد می‌گیرید چگونه دستورات کاربر را در ربات تلگرام مدیریت کنید. دستورات معمولاً با علامت / شروع می‌شوند (مثل /start یا /help) و می‌توانید برای هر کدام پاسخ خاصی تعریف کنید.

1. تعریف دستورات ساده

برای تشخیص دستورات، از CommandHandler در کتابخانه python-telegram-bot استفاده می‌کنیم. مثال:

from telegram.ext import CommandHandler, Updater

def start(update, context):
    update.message.reply_text("سلام! به ربات من خوش آمدید.")

updater = Updater("TOKEN", use_context=True)
dispatcher = updater.dispatcher

# اضافه کردن هندلر برای دستور /start
dispatcher.add_handler(CommandHandler("start", start))

updater.start_polling()

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

2. مدیریت چندین دستور

می‌توانید برای هر دستور یک تابع جداگانه تعریف کنید و آن‌ها را به Dispatcher اضافه کنید:

def help(update, context):
    update.message.reply_text("راهنمای ربات: /start - شروع کار")

dispatcher.add_handler(CommandHandler("help", help))

3. ارسال پارامتر با دستورات

گاهی کاربران مقادیری را همراه دستور ارسال می‌کنند (مثلاً /search کتاب). برای دریافت این مقادیر از context.args استفاده می‌کنیم:

def search(update, context):
    query = " ".join(context.args)  # دریافت متن بعد از دستور
    update.message.reply_text(f"در حال جستجو برای: {query}")

dispatcher.add_handler(CommandHandler("search", search))

4. اعتبارسنجی دستورات

ممکن است بخواهید بررسی کنید که کاربر دستور را به درستی وارد کرده است:

def calc(update, context):
    if len(context.args) != 2:
        update.message.reply_text("فرمت صحیح: /calc عدد1 عدد2")
        return

    num1 = float(context.args[0])
    num2 = float(context.args[1])
    update.message.reply_text(f"نتیجه: {num1 + num2}")

dispatcher.add_handler(CommandHandler("calc", calc))

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

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3