您好,不知道如何解决这个问题,因此我们将非常感谢任何帮助。
我订阅了私人频道。该频道没有用户名,我也没有邀请链接(管理员刚刚添加了我)。
由于我在工作中使用此频道,为了加快处理速度,我想使用 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,但错误始终相同。尤其:
- 该频道是私人频道,因此没有用户名(“@blablabla”)
- 我没有邀请链接
- 我尝试处理所有传入消息,直到管理员在频道上发送消息,打印发件人信息并从“ID”键获取值
- 我尝试使用 telegram 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 my_private_channel is None:
print("chat not found")
else:
print("chat id is", my_private_channel_id)
您可以过滤发送到 my_private_channel 的消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)