۹. مدیریت اعضا و پیام‌ها در ربات تلگرام با پایتون

""

مقدمه

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

در این فصل، مدیریت پیام‌ها و کاربران را با مثال و به‌زبان ساده بررسی می‌کنیم.


۱- دریافت اطلاعات کاربر

هر بار که کاربری با ربات شما تعامل می‌کند، شیء update اطلاعات زیادی درباره کاربر دارد، ازجمله:

  • نام کاربری
  • شناسه عددی (user id)
  • وضعیت ادمین یا عادی
    این اطلاعات در دسترس شما قرار دارد و می‌توانید برای کنترل دسترسی یا ثبت فعالیت‌ها استفاده کنید.

مثال ساده دریافت اطلاعات کاربر

def user_info(update, context):
    user = update.effective_user
    message = (
        f"سلام {user.first_name}!\n"
        f"یوزرنیم شما: @{user.username}\n"
        f"آی‌دی عددی شما: {user.id}"
    )
    update.message.reply_text(message)

۲- دریافت لیست اعضا (در گروه‌ها)

در ربات‌های گروهی می‌توانید بفهمید چه کسی پیام می‌دهد و حتی لیست ادمین‌ها را هم واکشی کنید (توجه: با محدودیت API تلگرام فقط لیست کامل اعضا قابل دریافت نیست، ولی امکان مشاهده وضعیت ادمین و دریافت بعضی اطلاعات فراهم است).

نمونه کد: لیست ادمین‌های گروه

def get_admins(update, context):
    chat = update.effective_chat
    admins = context.bot.get_chat_administrators(chat.id)
    admin_list = [f"{admin.user.full_name} (@{admin.user.username})" for admin in admins]
    msg = "ادمین‌های این گروه:\n" + '\n'.join(admin_list)
    update.message.reply_text(msg)

۳- حذف و ویرایش پیام

  • حذف پیام: گاهی ربات باید بعضی پیام‌ها را پاک کند (مثلاً پیام ورود کاربران یا تبلیغات)
  • ویرایش پیام: احتمال دارد پیامی ارسال شده و بخواهید محتوای آن را آپدیت (بروزرسانی) کنید (مثلاً هنگام استفاده از دکمه‌های شیشه‌ای)

نمونه کد: حذف پیام توسط ربات

def delete_my_message(update, context):
    context.bot.delete_message(
        chat_id=update.message.chat_id,
        message_id=update.message.message_id
    )

نمونه کد: ویرایش پیام ارسال‌شده توسط ربات

def edit_my_message(update, context):
    # فرض: پیامی با دکمه قبلاً ارسال شده
    query = update.callback_query
    query.edit_message_text("پیام ویرایش شد ✅")

۴- کنترل دسترسی کاربران (مثال ساده مدیر و کاربر عادی)

گاهی می‌خواهید فقط ادمین‌ها یا کاربران خاصی به برخی امکانات دسترسی داشته باشند. کافی است در ابتدای هرفانکشن وضعیت کاربر را بررسی کنید:

def admin_only(update, context):
    admins = [admin.user.id for admin in context.bot.get_chat_administrators(update.effective_chat.id)]
    if update.effective_user.id not in admins:
        update.message.reply_text("فقط مدیران به این بخش دسترسی دارند.")
        return
    update.message.reply_text("خوش آمدید مدیر عزیز!")

نکات پایانی و جمع‌بندی

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *