如何无需@提及即可在Google Chat空间触发聊天机器人
Google Chat群空间无需@提及触发机器人的实现方案
首先明确原生默认规则:
Google Chat默认推送逻辑下,群聊空间内的消息事件只会在三类场景推送给关联机器人:消息中@提及机器人、用户直接回复机器人发送的历史消息、用户和机器人处于DM私聊会话。这就是你目前遇到的群聊场景必须@才响应的根本原因。
可落地的实现方式共有两种,可根据你当前机器人的类型选择:
- 方案一:开启机器人全量消息接收权限(适配自主开发/内部管控的Chat应用)
如果你使用的是自主开发、或在所属Google Workspace后台可管控的Chat机器人,直接进入对应项目的Chat API配置页面,在事件订阅板块勾选空间内成员发送消息类的全量消息接收事件,不要仅保留“被@时接收消息”的选项。
该权限属于敏感权限,如果是Workspace内部使用的私有机器人,找对应Workspace管理员审批开通后即可生效;如果是公开发布的机器人,需要通过Google的权限审核流程。
权限生效后机器人就能接收到所在群空间的所有公开消息,直接在后端代码里加关键词匹配逻辑即可,比如判断消息文本包含wifi字段就返回预设的WiFi密码回复,不需要用户额外@。逻辑里记得加过滤规则,排除机器人自己发送的消息,避免出现循环回复的问题。 - 方案二:搭配消息中转层适配Webhook类轻量机器人
如果你用的是群空间内直接添加的Webhook类型自定义机器人,这类机器人本身没有主动接收全量消息的能力,需要先联系Workspace管理员在后台开启对应群空间的消息转发规则,将空间内所有公开消息推送到你自己的中转服务,中转服务完成关键词匹配校验后,命中规则就调用群空间的Webhook地址发送对应回复即可。
这个方案不需要提交机器人权限审核,适合小团队内部使用的简单应答场景。
注意事项:无@触发的能力仅适合做刚需的自动应答,不要用来发送无关推广类消息,被用户举报后会被直接限制接口调用权限。关键词匹配逻辑建议兼容大小写、常用表述变体,避免出现用户发WiFi、wifi密码这类内容时匹配失效的问题。
内容的提问来源于stack exchange,提问作者MaxK123
相关产品推荐
相关产品推荐

