You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Telegram群组特定成员ID 实现无用户名用户消息计数

Telegram群组用户消息计数无用户名依赖实现方案

Telegram平台为每个注册用户分配了全局唯一、永久不变的数字ID,完全不需要依赖用户名即可实现用户的唯一识别,该ID可直接通过消息对象的message.from_user.id字段获取,不受用户是否设置用户名、修改用户名、修改群昵称的影响,是做用户统计场景的唯一可靠标识。

具体改造逻辑

  • 调整存储规则:放弃原有的「用户名-计数」存储结构,改用「用户数字ID-计数」作为核心匹配键,可额外冗余存储用户当前的昵称、用户名(若存在)方便人工查看统计结果,冗余字段不参与用户匹配逻辑。
    改造后的count.txt存储示例如下:

    102345678 5 drhunter
    129876543 45 drhunter2
    135792468 12 未设置用户名

  • 调整计数逻辑:每次收到群内消息时,优先读取message.from_user.id值作为唯一检索键:
    • 若文件中已存在该ID对应的记录,直接将计数值+1写回,可同步更新冗余存储的用户昵称/用户名字段,适配用户修改资料的场景
    • 若文件中不存在该ID对应的记录,新增一条记录,计数值初始为1即可

额外说明

原有基于用户名的统计逻辑除了遇到无用户名用户返回None的异常外,还存在更严重的错配风险:Telegram用户可自由修改用户名,用户A放弃原用户名后,其他新用户可注册使用该用户名,会直接导致历史计数归属错误,使用数字ID做唯一标识可彻底规避这类问题。

内容的提问来源于stack exchange,提问作者Drhunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:27:33