آموزش جامع ساخت ربات تلگرام با پایتون | مدیریت پیامها
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
دریافت و مدیریت انواع پیامها
در این بخش، یاد میگیرید که چگونه پیامهای مختلف ارسالی به ربات تلگرام را دریافت و پردازش کنید. رباتهای تلگرام میتوانند انواع پیامها مانند متن، تصویر، ویدیو، فایل، استیکر و حتی موقعیت جغرافیایی را دریافت کنند. برای مدیریت این پیامها، از کتابخانه python-telegram-bot استفاده میکنیم.
۱. دریافت پیام متنی
برای دریافت متن ارسالی کاربر، از متد message.text استفاده میکنیم. به مثال زیر توجه کنید:
from telegram.ext import Updater, MessageHandler, Filters
def handle_text(update, context):
user_message = update.message.text
update.message.reply_text(f"شما گفتید: {user_message}")
updater = Updater("TOKEN", use_context=True)
dp = updater.dispatcher
dp.add_handler(MessageHandler(Filters.text, handle_text))
updater.start_polling()
در این کد:
Filters.textفقط پیامهای متنی را فیلتر میکند.- تابع
handle_textمتن کاربر را دریافت و پاسخ میدهد.
۲. دریافت تصویر و فایل
برای دریافت تصویر یا فایل، از Filters.photo و Filters.document استفاده میشود:
def handle_photo(update, context):
photo = update.message.photo[-1].file_id
update.message.reply_text("عکس شما دریافت شد!")
def handle_document(update, context):
document = update.message.document.file_id
update.message.reply_text("فایل شما دریافت شد!")
dp.add_handler(MessageHandler(Filters.photo, handle_photo))
dp.add_handler(MessageHandler(Filters.document, handle_document))
۳. دریافت موقعیت جغرافیایی
اگر کاربر موقعیت خود را ارسال کند، میتوانید آن را با Filters.location پردازش کنید:
def handle_location(update, context):
lat = update.message.location.latitude
lon = update.message.location.longitude
update.message.reply_text(f"موقعیت شما: عرض {lat}, طول {lon}")
dp.add_handler(MessageHandler(Filters.location, handle_location))
۴. مدیریت پیامهای صوتی و ویدیویی
برای دریافت فایلهای صوتی و ویدیویی، از Filters.voice و Filters.video استفاده میکنیم:
def handle_voice(update, context):
voice = update.message.voice.file_id
update.message.reply_text("پیام صوتی شما دریافت شد!")
def handle_video(update, context):
video = update.message.video.file_id
update.message.reply_text("ویدیوی شما دریافت شد!")
dp.add_handler(MessageHandler(Filters.voice, handle_voice))
dp.add_handler(MessageHandler(Filters.video, handle_video))
با استفاده از این متدها، میتوانید انواع پیامهای ارسالی کاربران را شناسایی و پاسخ مناسب ارسال کنید.
برای ثبت پرسش ابتدا در سایت وارد شوید.