如何实现谷歌助手触发自定义场景后问询输入并调用本地服务器API?
解决方案
方案1:通过Google Home Developer Console创建自定义Action
这是满足需求的核心方案,可实现语音触发、用户输入收集与API调用的完整流程:
- 创建Action项目:打开Google Home Developer Console,新建自定义Action项目,关联你的谷歌账号及对应Google Home设备组。
- 配置触发意图:新建名为
AmbientLightIntent的意图,设置触发短语如「启动Ambient Light场景」「打开Ambient Light」;添加atmosphere_description参数,类型设为「自由文本」,并配置提示语「你想要什么氛围?」,确保谷歌助手会主动询问用户补充输入。 - 配置Webhook:在意图的「Fulfillment」模块启用Webhook,填写本地服务器的公网可访问API地址(无固定公网IP时,可使用内网穿透工具如Ngrok/FRP实现外网访问)。用户完成输入后,谷歌助手会将包含
atmosphere_description参数的POST请求发送至该地址,你的本地服务器直接处理请求即可完成后续的配色生成与灯光控制。 - 测试与部署:通过Console的「Test」功能验证交互流程,确认参数传递正常后,将Action部署到你的谷歌账号,即可在电视内置的谷歌助手上触发。
方案2:用Google Apps Script做中转层(可选)
若不想直接暴露本地服务器,可借助Google Apps Script作为请求中转:
- 创建Apps Script项目,编写
doPost函数接收谷歌助手的请求,再将atmosphere_description参数转发至你的本地服务器API。 - 将Apps Script部署为Web应用,把部署URL配置为谷歌Action的Webhook地址,实现请求的间接转发。
关于类Siri指令构建器
谷歌暂无和Siri Shortcuts完全一致的可视化指令构建工具,但Google Home Developer Console的意图配置界面已足够直观——通过参数配置、触发短语设置即可完成语音交互流程,无需复杂编码(前提是你已有本地服务器的API处理逻辑)。
关键注意事项
- 确保本地服务器的API具备公网访问能力,内网穿透工具需保持稳定,避免请求失败。
- 谷歌助手发送的Webhook请求为JSON格式,
atmosphere_description参数会包含在queryResult.parameters字段中,需在本地服务器API中正确解析该字段。
内容的提问来源于stack exchange,提问作者DeLac
相关产品推荐
相关产品推荐

