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

Python Telegram Bot如何判断消息来自群组还是私聊?

问题解决:Telegram机器人群组无响应仅私聊正常

核心原因排查

机器人在群组收不到消息,和代码里的聊天类型判断逻辑关系不大,大概率是隐私模式设置或群组权限问题。

解决步骤

  • 关闭BotFather的隐私模式
    默认情况下,Telegram机器人的隐私模式是开启的,开启后机器人在群组里只能收到被@提及的消息。如果想让机器人接收所有群组消息,需要关闭该模式:

    1. 打开Telegram,找到@BotFather
    2. 发送命令/setprivacy
    3. 选择你的机器人
    4. 选择Disable选项
  • 确认机器人的群组权限
    确保机器人在目标群组中拥有读取消息的权限:

    1. 打开群组设置
    2. 找到你的机器人,进入权限设置
    3. 勾选“读取消息”(不同版本界面选项可能略有差异)
  • 代码细节修正
    确保正确获取聊天对象,避免因对象引用错误导致判断失效,同时可调整逻辑适配需求:

修正后的示例代码

chat = update.effective_chat
message_text = update.message.text

if chat.type in ["group", "supergroup"]:
# 若需仅响应@机器人的消息,取消以下注释并替换为你的机器人用户名
# bot_username = "@YourBotName"
# if bot_username in message_text:
response_text = generate_response(message_text)
update.message.reply_text(response_text)
elif chat.type == "private":
response_text = generate_response(message_text)
update.message.reply_text(response_text)

内容的提问来源于stack exchange,提问作者Richard Vega
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:45:46