【发布时间】:2020-05-23 07:02:21
【问题描述】:
我们尝试了本地 sdk 并使用 otherDeviceIds 处理 SYNC 响应。 扫描配置应该没问题,因为我们的本地应用程序已经收到了带有预期 udp 有效负载的 IDENTITY 请求。 IDENTITY 响应应该没问题,因为本地平台应该已经通过检查“verificationId”,因为如果我将verificationId 设置为某个字符串,否则它表示未通过验证。
问题是当我尝试“显示相机”时,本地执行执行回调函数未触发。在这种情况下,我的 firebase 云功能仍然收到“action.devices.commands.GetCameraStream”命令。
我试用了灯海峡样品,看起来效果不错。 任何人都知道 Google 本地 Home sdk 是否支持 CameraStream 特征。
以下日志是我们firebase云函数中SYNC返回的对象,我们添加“otherDeviceIds”:[{“deviceId”:“789”}]字段, 为了完成本地sdk。
同步 JSON 对象:
{
"requestId": "465812xxx029114126",
"payload": {
"agentUserId": "023XXXXd4d850c01cd16ebb636eb8418",
"devices": [{
"id": "123",
"traits": ["action.devices.traits.CameraStream"],
"name": {
"defaultNames": ["xxx CAMERA"],
"nicknames": ["Front door"],
"name": "Camera"
},
"customData": {
"fooValue": 88,
"barValue": true,
"bazValue": "string"
},
"attributes": {
"cameraStreamSupportedProtocols": ["hls"],
"cameraStreamNeedAuthToken": false,
"cameraStreamNeedDrmEncryption": false
},
"otherDeviceIds": [{
"deviceId": "789"
}],
"type": "action.devices.types.CAMERA",
"willReportState": false
}]
}
}
IDENTITY 响应应该没问题,因为本地平台应该已经通过了“verificationId”检查。
识别请求对象(本地 SDK):
{
"requestId": "XXXXXA5FB895B0CD58C022BDC",
"inputs": [{
"intent": "action.devices.IDENTIFY",
"payload": {
"device": {
"udpScanData": {
"data": "A562696463373839656D6F64656C6966616B6563616E64796668775F726576656576742D316666775F7265766776312D62657461686368616E6E656C738101"
}
},
"structureData": {}
}
}],
"devices": [{
"id": "123",
"customData": {
"barValue": true,
"bazValue": "string",
"fooValue": 88
}
}]
}
识别响应对象(本地 SDK):
{
"intent": "action.devices.IDENTIFY",
"requestId": "XXXXX8D0A4A5FB895B0CD58C022BDC",
"payload": {
"device": {
"id": "",
"verificationId": "789"
}
}
}
但是当我尝试“显示相机”时,本地执行执行回调函数没有触发。 在这种情况下,我的firebase云功能仍然收到“action.devices.commands.GetCameraStream”命令。
下面是我说“显示相机”我的 Firebase 云功能时的日志。
{
"inputs": [{
"context": {
"locale_country": "US",
"locale_language": "en"
},
"intent": "action.devices.EXECUTE",
"payload": {
"commands": [{
"devices": [{
"customData": {
"barValue": true,
"bazValue": "string",
"fooValue": 88
},
"id": "123"
}],
"execution": [{
"command": "action.devices.commands.GetCameraStream",
"params": {
"StreamToChromecast": true,
"SupportedStreamProtocols": ["progressive_mp4", "hls", "dash", "smooth_stream"]
}
}]
}]
}
}],
"requestId": "xxxx366353358387"
}
【问题讨论】:
-
欢迎来到社区!您能否提供一些示例代码。这有助于为其他人回答您的问题提供背景信息。我们经常看到解决方案的请求,而这可能不是解决您的问题的正确方法
-
@idan 感谢您的评论,我们提供了相关代码
标签: node.js google-chrome google-cloud-functions actions-on-google google-smart-home