获取 Telegram 群组的所有用户

23

我想获取一个 Telegram 群组的所有用户,我看到了 getChatAdministrators 方法,但我认为 API 没有一种获取所有成员的方法。

我正在使用 nodejs 的 telegram-bot-api。

4个回答

25

Telegram机器人API:

目前使用机器人API无法实现你想要的功能。虽然我不确定NodeJS API是否能够实现,但是官方机器人API(你的实现很可能会使用)目前不允许获取有关所有成员的特定信息。

但是,你可以查询一个群组中当前有多少用户,使用getchatmemberscount。如果你拥有某个群成员的用户ID,则可以使用getchatmember函数获取更多该用户的信息。

Telegram API:

使用Telegram API,你可以像控制机器人一样来控制“普通”用户。如果你决定使用此API,其他用户将无法明确知道你的账号是自动化的;事实上,官方Telegram应用程序将其用作后端。但是,你需要像使用常规账号一样使用电话号码进行注册。

使用此API,您可以使用getChats函数非常容易地查询机器人所在的所有聊天记录。接下来,您可以使用getFullChat函数查询特定聊天记录的全部信息(包括所有用户及其详细信息)。

如何调用API?抱歉,我无法弄清楚在getFullChat的情况下如何使用chat_id。 - gabkov

4
你可以使用Telethon提取给定组或频道的所有成员(如果你是频道管理员),你可以在这里找到Telethon: https://github.com/LonamiWebs/Telethon。Telethon会将给定组的所有成员提取出来并保存在SQLite数据库中。

怎么做?也许使用Telethon的示例会很好。或者至少指向文档中的确切部分,而不是整个存储库。此外,这并不能仅通过机器人回答问题。 Telethon必须像普通的Telegram用户一样登录。 - KhoPhi
谢谢您的建议 - 我已经使用了这段代码与Telethon一起:https://dev59.com/wFYN5IYBdhLWcg3wRmWh#68047452 - PokatilovArt

3

Telegram Bot API并不提供这种功能,唯一有效的方法是使用用户机器人(在常规Telegram帐户下运行的机器人)。


2

您解决了问题吗?我使用 Telegram Bot API 的 GetChatMemberCount 方法来获取群组的成员数量。我还可以使用机器人 API 获取发送消息到群组的用户信息。我怀疑是否有其他方法可以在没有机器人 API 的情况下获取成员数量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接