Мониторинг telegram каналов
Сейчас этот код выводит в терминал сообщения пользователей из указанного канала в реальном времени, иногда почему то с ошибками, но выводит. Но мне надо перенаправить их в мой бот, но бот ничего не воспринимает, чат id я указывал. Код начинает немного работать если указать свой личный чат, на котором создан api id и api кэш, но потом снова выходят ошибки, о не существующим id чата.
from telethon import TelegramClient, events
api_id = 00000000
api_hash = "#######################"
phone = "+7000000000"
# Создаем клиент Telegram
client = TelegramClient('session_name', api_id, api_hash)
async def monitor_messages():
# Определяем ключевые слова, по которым будем фильтровать сообщения
ключевые_слова = ['ищу', "работа"]
# Задаем список названий каналов для мониторинга
целевые_каналы = ['КЛИЕНТЫ || РАБОТА ОНЛАЙН']
@client.on(events.NewMessage)
async def handler(event):
try:
if event.is_channel and event.chat.title in целевые_каналы:
for ключ in ключевые_слова:
if ключ.lower() in event.raw_text.lower():
имя_отправителя = event.sender.username if event.sender else "Нет имени пользователя"
print(f'Новое сообщение в канале {event.chat.title}:')
print(f'{имя_отправителя} написал(а): {event.raw_text}')
# Можно выполнить дополнительные действия с сообщением
except Exception as e:
if "AuthKeyUnregisteredError" not in str(e):
print(e)
print("Старт мониторинга сообщений...")
await client.run_until_disconnected()
async def main():
# Запускаем мониторинг сообщений в фоновом режиме
await monitor_messages()
# Запускаем клиент Telegram и основную программу
with client:
client.loop.run_until_complete(main())