【发布时间】:2020-05-22 20:43:18
【问题描述】:
我们目前正在玩新推出的https://developers.google.com/actions/reference/rest/Shared.Types/AppResponse#mediaresponse
根据文档,我们将在媒体播放完毕后收到final Response。这在模拟器中效果很好,但在移动设备和扬声器上它会间歇性地工作
我们只会收到 2 或 3 次此回调,有时在任何一种设备上都不会收到。由于它工作了几次,我们确信它只是谷歌引擎,但要确保我们自己没有做错任何事情。
我使用自己的后端并拥有我们的引擎(Action SDK)。播放完成时我期待此响应,但我只是间歇性地收到此响应:
{
"user": {
"userId": "user-id",
"accessToken": "access-token",
"locale": "en-US",
"lastSeen": "2018-03-18T17:44:51Z"
},
"conversation": {
"conversationId": "1521395430917",
"type": "ACTIVE",
"conversationToken": "42"
},
"inputs": [{
"intent": "actions.intent.MEDIA_STATUS",
"rawInputs": [{}],
"arguments": [{
"name": "MEDIA_STATUS",
"extension": {
"@type": "type.googleapis.com/google.actions.v2.MediaStatus",
"status": "FINISHED"
}
}]
}],
"surface": {
"capabilities": [
{"name": "actions.capability.SCREEN_OUTPUT"},
{"name": "actions.capability.AUDIO_OUTPUT"},
{"name": "actions.capability.WEB_BROWSER"},
{"name": "actions.capability.MEDIA_RESPONSE_AUDIO"}
]
},
"isInSandbox": true,
"availableSurfaces": [
{"capabilities": [
{"name": "actions.capability.SCREEN_OUTPUT"}, {"name": "actions.capability.AUDIO_OUTPUT"}
]}
]
}
【问题讨论】:
-
我有点困惑 - 你的 webhook 应该永远不会得到最终响应。您应该得到一个名为 MEDIA_STATUS 的输入参数 (developers.google.com/actions/reference/rest/Shared.Types/…)。您是在 finalResponse 部分还是 inputPrompt 部分发送媒体响应? (或者您正在使用 Dialogflow?)
-
我使用自己的后端并拥有我们的引擎。我期待在播放完成时间歇性收到这个最终响应:
-
我使用自己的后端并拥有我们的引擎(Action SDK)。我期待播放完成时间歇性收到的最终响应:{“user”:{“userId”:“user-id”,“accessToken”:“access-token”,“locale”:“en-US”, “lastSeen”:“2018-03-18T17:44:51Z”},“conversation”:{“conversationId”:“1521395430917”,“type”:“ACTIVE”,“conversationToken”:“42”},“inputs” : [{"intent": "actions.intent.MEDIA_STATUS","rawInputs": [{}],"arguments": [{"name": "MEDIA_STATUS","extension": {"@type": "type .googleapis.com/google.actions.v2.MediaStatus","status": "FINISHED"}}]}],
-
请更新问题,而不是尝试在 cmets 中提供更多信息。这种方式真的很难读。