Как получить идентификатор частного канала Telegram с помощью телемарафона - PullRequest
1 голос
/ 11 июля 2020

Привет, не могу понять, как решить эту проблему, поэтому мы будем благодарны за любую помощь. Я подписан на частный канал. У этого канала нет имени пользователя, и у меня нет ссылки для приглашения (администратор только что добавил меня). Поскольку я использую этот канал на работе, чтобы ускорить обработку сообщений, размещенных на канале, с помощью Telethon.

Ядро программы:

@events.register(events.NewMessage(chats = my_private_channel))
async def handler(event):
    
        #do things

Проблема в том, что я не могу фильтровать сообщения, приходящие на этот идентификатор канала c. Я получаю сообщение об ошибке:

ValueError: Cannot find any entity corresponding to "0123456789"

Я пробовал разные методы получения идентификатора канала, но ошибка всегда одна и та же. В частности:

  1. Канал является частным, поэтому у него нет имени пользователя ("@blablabla")
  2. У меня нет ссылки для приглашения
  3. Я попытался обработать все входящие сообщения до тех пор, пока администратор не отправит сообщение на канал, распечатайте информацию об отправителе и получите значение из ключа «ID»
  4. Я попытался использовать веб-телеграмму и получить идентификатор из URL-адреса (также добавив -100 перед ним)

Но когда я помещаю идентификатор в параметр chats , я всегда получаю сообщение об ошибке, о котором говорилось выше.

Заранее спасибо, хороший день

Ответы [ 2 ]

1 голос
/ 11 июля 2020

, если у вас есть доступ к каналу, он отображается в вашем списке чатов.

Вам нужно oop через свои чаты, проверяя их заголовки, а затем сохранять нужный чат в переменной:

my_private_channel_id = None
my_private_channel = None

async for dialog in tg.client.iter_dialogs():
    if dialog.name == "private chat name":
        my_private_channel = dialog
        my_private_channel_id = dialog.id
        break

if private_chat is None:
    print("chat not found")
else:
    print("chat id is", my_private_channel_id)

Чем вы можете фильтровать сообщения, отправленные на my_private_channel.

0 голосов
/ 11 июля 2020

Вы не можете присоединиться к частному каналу без ссылки для приглашения, и вы не можете получить о ней какую-либо информацию. Это личное, как следует из названия.

...