在 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_participant 和 left_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库)