在Google Home设备上通过n8n集成ChatGPT与Google Assistant的实现问询
解决方案
可行性说明
完全可以实现你的需求,不需要依赖已停用的Dialogflow,现在通过Google Actions Console的Conversational Actions就能完成对接。
1. OAuth2 Scope 说明
你的场景其实不需要复杂的OAuth2 Scope——核心是Google Home把用户查询转发给n8n,再由n8n调用ChatGPT返回结果,这个流程不需要访问用户的Google私有数据。
如果你的n8n实例需要验证请求来源(确保只有Google的请求能触发),更推荐用Google Actions的请求签名验证而非OAuth2。如果确实要配置OAuth2(比如后续扩展功能需要),仅需使用基础的https://www.googleapis.com/auth/assistant Scope即可,这个Scope允许你的服务与Google Assistant进行交互。
2. 完整实现步骤
- 步骤1:在Google Actions Console创建自定义Action
- 新建项目,选择「Custom」类型创建自定义Action
- 设置触发配置:在「Invocation」页面设置Action的显示名称(比如“GPT助手”),然后在「Intents」页面创建主Intent,配置触发语句模板(比如“ask GPT {query}”),将
{query}设置为自由文本实体,用来捕获用户的具体问题。
- 步骤2:配置Webhook对接n8n
- 进入「Fulfillment」页面,启用Webhook,填入你的n8n实例公网HTTPS地址(比如
https://你的n8n域名/webhook/gpt-assistant) - 可选:开启请求签名验证,下载Google提供的公钥,在n8n的Webhook节点中配置签名校验,确保请求来自Google。
- 进入「Fulfillment」页面,启用Webhook,填入你的n8n实例公网HTTPS地址(比如
- 步骤3:搭建n8n工作流
- 添加Webhook节点,设置为POST方法,路径与上面填写的地址一致
- 添加「Function」节点,解析Google Actions发送的请求体,提取
queryResult.queryText字段(这就是用户的问题) - 添加OpenAI节点,配置你的API密钥,将提取到的用户问题作为Prompt发送给ChatGPT
- 再添加一个「Function」节点,将ChatGPT的返回结果组装成Google要求的响应格式:
{ "fulfillmentText": "这里替换成ChatGPT返回的文本内容" } - 将组装好的JSON作为Webhook节点的响应返回
- 步骤4:测试与部署
- 在Actions Console的「Test」页面绑定你的Google账号,用Google Home设备或Assistant APP测试触发短语“Hey Google, ask GPT [你的问题]”
- 如果要公开使用,完善Action信息后提交Google审核即可(你的场景不需要用户登录,OAuth2问卷可选择无需身份验证的选项)
当前可用的实现方向
直接参考Google Actions Console官方的Conversational Actions开发文档,重点关注Webhook Fulfillment相关章节即可,无需依赖旧的Dialogflow内容。
内容的提问来源于stack exchange,提问作者Sam Phillips
相关产品推荐
相关产品推荐

