Задать вопрос
Dr_Elvis
@Dr_Elvis
В гугле забанен

Почему может не приходить событие в telethon?

Привет!
Имеется до невозможности простой код бота
from telethon import TelegramClient, events

api_id_client = 11111111
api_hash_client = '6094e698e964...'
client = TelegramClient('Client', api_id_client , api_hash_client )

@client.on(events.NewMessage)
def getmsg(event):
    print(event.message.message)

client.start()
client.run_until_disconnected()

Когда у клиента в чате что-то пишут - работает. Когда я подписал на свой тестовый канал клиента и написал тестовую новость - работает. Но когда я подписался просто на несколько каналов обычных - не работает при новом сообщении в канале. даже event не приходит. никаких ошибок, просто тишина. опять пишу в свой тестовый канал - всё отрабатывает.
В чем может быть причина? есть какие то способы блокировки сообщений канала от API? и вообще может быть такое совпадение что на 10 каналах, что я подписал клиента, все включили какие то блокировки?
  • Вопрос задан
  • 936 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Хекслет
    Python-разработчик
    10 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
  • Stepik
    Программа курсов: Бэкенд-разработка на Python
    1 месяц
    Далее
  • Merion Academy
    Python программист с нуля
    4 месяца
    Далее
  • Skypro
    Python-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Dr_Elvis
@Dr_Elvis Автор вопроса, куратор тега Python
В гугле забанен
Походу ограничение на количество пользователей в группе или канале.
Потестировал.
Если в группе\канале до 500 пользователей\подписчиков - работает нормально.
Если в группе\канале больше 500 пользователей\подписчиков - не работает.

Утверждать не могу, так как не нашел конкретной официальной информации, но тестирование показало вот такую картину. Задал вопрос техподдержке телеграма, если ответят - дополню этот комментарий.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ermakovrd
С такой же проблемой столкнулся. Всё работало. Потом, от части групп перестали события приходить.

Решил сравнить группы между собой. Собрал все группы, на которые подписан аккаунт:
dialogs = await client.get_dialogs()
print (dialogs)
И проанализировал различия.

Для тех групп, сообщения от которых не приходят, был выставлен параметр slowmode_enabled=True

При этом, события редактирования сообщений - @client.on(events.MessageEdited), приходят от всех групп.

Решение - принудительное обновление новых сообщений с определённой периодичностью.

#Функция, которая с определённой периодичностью обновляет список новых сообщений.
async def client_catch_up():  
    while True:
        await client.catch_up()  #Сама "обновлялка".
        await asyncio.sleep(30)
        print("client_catch_up отработал...")
		
async def main():
    await client_catch_up()    #Прописываем запуск в main
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы