在 python-telegram-bot 中如何获取该组的所有参与者?

Posted

技术标签:

【中文标题】在 python-telegram-bot 中如何获取该组的所有参与者?【英文标题】:In python-telegram-bot how to get all participants of the group? 【发布时间】:2016-04-06 16:40:00 【问题描述】:

在Python-telegram-bot 中,如果可能,如何获取添加了机器人的组的所有参与者的完整列表?

【问题讨论】:

我尝试在文档和示例中搜索检索参与者列表的方法。我想实现一个Mafia game like。要设置角色,我必须先获取一个列表。 【参考方案1】:

您不能使用当前的 API,但您可以通过其 API 加入/退出用户成员。

如果您检查发现的 Message 对象:

new_chat_participant:组中添加了一个新成员,提供有关他们的信息(该成员可能是机器人本身) left_chat_participant:成员已从群组中删除,有关他们的信息(该成员可能是机器人本身)

因此,通过这两个信息,您可以跟踪聊天中的用户总数以及他们是谁。

基本策略是将用户加入和退出组的事件存储在某处(如数据库)。

当用户加入聊天时,将对象用户存储到存储中。 当用户退出聊天时,从存储中删除对象用户。

然后根据需要执行逻辑。

【讨论】:

我可以在不使用商店的情况下获取组中的所有用户ID吗? Telegram 不允许这样做【参考方案2】:

此外,最新的 API 更新允许您:

telegram.get_chat_members_count(chat_id):使用此方法获取聊天中的成员数。

telegram.get_chat_member(chat_id, user_id):使用此方法获取聊天成员的信息。

您可以结合 new_chat_participantleft_chat_participant 策略,构建群组信息。

更多信息在这里:

https://python-telegram-bot.readthedocs.io/en/stable/telegram.bot.html#telegram.Bot.get_chat_members_count https://python-telegram-bot.readthedocs.io/en/stable/telegram.bot.html#telegram.Bot.get_chat_member

【讨论】:

发布的链接失败,出现 404。 但是如何帮助我获取组中的所有用户 ID? 当成员数量很大时,超级组不显示用户离开。 BOT API 无法获取聊天成员。唯一的方法是使用 Telegram TDLib API。

以上是关于在 python-telegram-bot 中如何获取该组的所有参与者?的主要内容,如果未能解决你的问题,请参考以下文章

在函数内获取变量更新(Telegram bot、Python3、python-telegram-bot 库、多处理)

python Webhook使用自签名证书和Flask(使用python-telegram-bot库)

python Webhook使用自签名证书和Flask(使用python-telegram-bot库)

使用python-telegram-bot模块转发telegram机器人消息到钉钉平台

编程打卡:tg的bot开发尝试

用户在电报机器人手机中接收后自动全屏显示照片