Отслеживание вступления и выхода из закрытого канала telegram в режиме реального времени

Мне необходимо реализовать функционал в котором пользователь нажимает на кнопку с ссылкой на закрытый канал, он туда вступает и ему автоматически придет сообщение от бота "Спасибо что подписались". В случае, если пользователь отпишется от канала, то бот должен отправить сообщение "Вы отписались от канала".

Использую aiogram 3.x через вебхук, бот с правами администратора, БД через sqlite3.

Для реализации этого функционала мне каким-то образом необходимо отслеживать in real time подписки и отписки пользователей.

Пробовал вариант с использованием telethon, но он не выводит никакие ивенты канала

from telethon import TelegramClient, events
from config import config


api_id = config.TELEGRAM_API_ID
api_hash = config.TELEGRAM_API_HASH
bot_token = config.BOT_TOKEN.get_secret_value()


client = TelegramClient('bot_session', api_id, api_hash)


async def main():
    await client.start(bot_token=bot_token)

    group_id = config.CHANNEL_ID

    # Обработчик для новых участников
    @client.on(events.ChatAction)
    async def handler(event):
        if event.chat_id == group_id:
            if isinstance(event.action, events.ChatAction.ChatJoinedByLink):
                print(f"Пользователь {event.user_id} вступил в группу по пригласительной ссылке.")
            elif isinstance(event.action, events.ChatAction.ChatLeft):
                print(f"Пользователь {event.user_id} вышел из группы.")

    await client.run_until_disconnected()

if __name__ == '__main__':
    client.loop.run_until_complete(main())

Буду рад вашим предложениям!

Вариант с кнопкой проверки подписки не подойдет, нужно чтобы бот сам отправлял сообщение пользователю


Ответы (0 шт):