python - Telethon - 如何获取某个号码所属的所有频道的列表?
问题描述
在我的 python 项目中,使用 telethon 库,我需要我的手机所属的频道列表(它可以包括其他类型的聊天,但我只需要频道),无论我的号码是管理员还是不是。
我需要的所有信息都是频道的 ID 和标题,有没有办法做到这一点?在文档中我找到了方法GetChannelsRequest
,但我没有实例化它。我已经尝试过了,但这是错误的,因为我需要不同的数据类型,但我不知道如何使用它。
async def get_all_channels():
try:
me = await client.get_input_entity(await client.get_me())
channels = await client(GetChannelsRequest( # Expected type 'List[Union[InputChannelEmpty, InputChannel, InputChannelFromMessage]]'
[await client.get_entity('me')] # got 'Union[User, Chat, Channel]' instead
# [await client.get_input_entity('me')] # got 'Union[InputPeerEmpty, InputPeerSelf, InputPeerChat, InputPeerUser, InputPeerChannel, InputPeerUserFromMessage, InputPeerChannelFromMessage]' instead
))
except:
return traceback.format_exc()
我刚开始学习图书馆。我加入的团体(如果它们是私人团体)是实现这一目标的问题吗?
解决方案
循环您的聊天记录iter_dialogs()
并检查对话是否为dialog.is_channel
.
async for dialog in client.iter_dialogs():
if dialog.is_channel:
print(f'{dialog.id}:{dialog.title}')
推荐阅读
- jquery - 无法在 jquery 函数中设置全局变量
- c# - 在 LINQ 连接中包含多个 ON
- asp.net - 使用来自 asp.net 的 Windows 凭据登录到 sql server
- mysql - 数据库模型:我应该将学生的最终成绩存储在数据库中吗
- algorithm - 为什么基数排序是 O(nd) 而归并排序不是 O(d*nlogn)?
- apache - 第三次 REST 连接失败
- arrays - 在数组中找到可重复的字符串位置
- kiwi-tcms - 安装kiwi tcms时出现django.db.migrations.exceptions.InconsistentMigrationHistory错误
- css - 如何使用 HTML 和 CSS 在 HTML 视图中间创建三角形“指针”
- spring-integration - Spring 集成 XML 和 Java 配置转换