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

使用python-telegram-bot的get_chat_member方法报错“User not found”求助

问题原因及解决方法

核心错误点

  • 传错了用户ID:你代码里的update.effective_chat.id是当前交互场景的聊天ID(比如在群组里触发指令时,这个ID是群组ID而非你的个人用户ID)。把群组ID传给get_chat_member查询频道成员,必然会提示“User not found”。正确的个人用户ID应该取update.effective_user.id。
  • Bot权限不足:确保你的Bot已被添加到目标频道,且拥有查看成员的权限——即使你是频道管理员,Bot本身需要独立配置权限。
  • 频道用户名错误:检查@Numbew拼写是否完全匹配频道实际用户名,避免字母多打/少打。

修正后的代码

# 获取当前用户的个人ID,而非聊天对象ID
user_id = update.effective_user.id
print(user_id)
channel_username = "@Numbew"
try:
    member = await context.bot.get_chat_member(channel_username, user_id)
    print(f"成员状态:{member.status}")
except telegram.error.BadRequest as e:
    print(f"错误:{e}")

替代方法

如果仅需验证自己是否为频道管理员,可使用get_chat_administrators接口遍历确认:

channel_username = "@Numbew"
user_id = update.effective_user.id
administrators = await context.bot.get_chat_administrators(channel_username)
is_admin = any(admin.user.id == user_id for admin in administrators)
print(f"是否为管理员:{is_admin}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:12:06