繁体   English   中英

如何使用 Telethon 获取电报私人频道 ID

[英]How to get a telegram private channel id with telethon

嗨无法弄清楚如何解决这个问题,所以任何帮助将不胜感激。 我订阅了一个私人频道。 这个频道没有用户名,我也没有邀请链接(管理员刚刚添加了我)。 由于我在工作中使用这个频道,为了加快我想要使用 Telethon 处理频道上发布的消息的速度。

该方案的核心是:

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

问题是我无法过滤到达该特定频道 ID 的消息。 我得到错误:

ValueError: Cannot find any entity corresponding to "0123456789"

我尝试了不同的技术来获取我的频道 ID,但错误总是相同的。 尤其是:

  1. 该频道是私人频道,因此没有用户名(“@blablabla”)
  2. 我没有邀请链接
  3. 我试图处理所有传入的消息,直到管理员在频道上发送消息,打印发件人信息并从“ID”键中获取值
  4. 我尝试使用电报 web 并从 url 获取 ID(还在其前面添加 -100)

但是当我将 ID 放入参数chats时,我总是得到上面报告的错误。

提前感谢,祝你有美好的一天

如果您有权访问该频道,则它会显示在您的聊天列表中。

你必须遍历你的聊天检查他们的标题,然后将所需的聊天存储在一个变量中:

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 的消息。

没有邀请链接,您无法加入私人频道,也无法获得任何有关该频道的信息。 顾名思义,它是私人的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM