如何检测来自谷歌家庭设备的对话流的请求。
对于google助手,Facebook等,我使用了source
节点中的originalRequest
参数。
{"originalRequest":{"source":"google","data":{"sender":{"id":"3"},"recipient":{"id":"3"},"message":{"mid":"mid","text":"apple iphone 8","seq":3},"timestamp":1522229806857}}
但对于google home我也将源参数设为 google 本身。
那么是否有任何参数可以检测来自google home的请求,以便我可以相应地更改响应?
答案 0 :(得分:2)
是和否。
首先 - 所有平台上的助手大致相同,所以你应该问为什么你要确定用户是使用带屏幕的助手还是没有屏幕的用户。您应该始终将语音定位为主要交互方法,即使对于具有屏幕的设备,也应该使用视觉效果进行补充,而不是依赖于它们。
但是,要确定您正在与之交谈的设备具有哪些功能,您应该查看originalRequest.data.surface.capabilities
数组。它包含一个带有name
参数的对象数组。该参数列出了此特定设备可以处理的功能。如果其中一个值为actions.capability.SCREEN_OUTPUT
,则它支持一个屏幕(即 - 它当前是移动设备。这可能也是智能显示器的设置。)。如果没有,则可能是扬声器(目前唯一没有屏幕的设备)。