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

求助:Google Chat Bot无法接收空间内非提及消息事件

Google Chat Bot 接收空间所有消息的配置方案

可行,只需调整Bot的空间权限配置并适配代码逻辑,具体操作如下:

1. 修改Google Chat Bot的空间权限设置

登录Google Cloud控制台,找到你的Chat Bot项目:

  • 进入「APIs和服务」→「Dashboard」,找到并打开Google Chat API
  • 切换到「配置」标签页,定位到「空间权限」设置项
  • 将「Bot是否可以接收空间中未提及它的消息」改为「是」
  • 保存配置后等待5-10分钟,让权限设置生效

2. 权限范围与服务账号校验

  • 你当前使用的https://www.googleapis.com/auth/chat.bot权限范围完全满足接收所有空间消息的需求,无需额外添加scope
  • 确认服务账号已配置「Chat Bot」相关角色,避免因权限不足导致事件无法推送

3. 代码逻辑适配

未提及Bot的MESSAGE事件不会携带Bot的提及信息,只需保证代码能处理所有MESSAGE类型事件即可,示例调整后的代码如下:

from flask import Flask, request, jsonify
from google.oauth2 import credentials
from googleapiclient.discovery import build

SCOPES = ['https://www.googleapis.com/auth/chat.bot']
creds = credentials.Credentials.from_service_account_file('service_account.json', scopes=SCOPES)
chat = build('chat', 'v1', credentials=creds)

app = Flask(__name__)

@app.route('/', methods=['POST'])
def handle_bot_event():
    event_data = request.get_json()
    evt = event_data.get('type', None)
    
    if evt == 'MESSAGE':
        # 处理所有空间消息,无论是否@Bot
        message_content = event_data['message']['text']
        # 这里添加自定义处理/回复逻辑
        return jsonify({'text': f'已收到消息:{message_content}'})
    elif evt == 'ADDED_TO_SPACE':
        return jsonify({'text': '成功加入空间!'})
    elif evt == 'REMOVED_FROM_SPACE':
        # 处理移除事件,无需回复
        return '', 200
    # 其他事件类型返回空响应
    return '', 200

调试注意事项

  • 权限配置更新后,建议重新将Bot加入目标空间,确保新权限生效
  • 用ngrok映射本地端口时,确保公网URL可正常访问(可通过curl发送POST请求测试你的ngrok地址)
  • 可在Google Cloud控制台的「日志」页查看事件推送记录,排查是否有推送失败的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:23:11