使用 dialogflow 检测来自 google 家的请求

Detect request coming from google home using dialogflow

如何检测来自 google 家庭设备的 dialogflow 请求。

对于 google 助手、Facebook 等,我使用了 originalRequest 节点中的 source 参数。

{"originalRequest":{"source":"google","data":{"sender":{"id":"3"},"recipient":{"id":"3"},"message":{"mid":"mid","text":"apple iphone 8","seq":3},"timestamp":1522229806857}}

但是对于 google 主页,我也将源参数作为 google 本身。

所以有没有任何参数可以检测来自 google 家的请求,以便我可以相应地更改响应?

是也不是。

首先 - 智能助理在所有平台上基本相同,因此您应该问为什么要尝试确定用户使用的是带屏幕的智能助理还是不带屏幕的智能助理。您应该始终将语音作为主要交互方式,即使对于带有屏幕的设备也是如此,并以视觉效果作为补充而不是依赖它们。

但是,要确定您正在使用的设备具有哪些功能,您应该查看 originalRequest.data.surface.capabilities 数组。这包含一个带有 name 参数的对象数组。该参数列出了该特定设备可以处理的功能。如果其中一个值是 actions.capability.SCREEN_OUTPUT,则它支持屏幕(即 - 它当前是移动设备。这也可能是为智能显示器设置的。)。如果没有,则可能是扬声器(目前可用的唯一没有屏幕的设备)。