Action on Google の実装に api.ai Webhook を使用しています。ここに記載されているリクエストとレスポンスのフォーマットに従っています
Webhook から送り返すレスポンスは
{
"speech": "Ok I am doing the stuff",
"displayText": "Ok I am doing the stuff",
"data": {
"google": {
"expect_user_response": false,
"is_ssml": false,
"permissions_request": {
"opt_context": "",
"permissions": []
}
}
},
"contextOut": []
}
これを Google ホームの Web シミュレーターでテストすると、「エージェントは現在応答していません。すぐに再試行してください」という応答 JSON が表示されます。
{
"response": "Car Bot isn’t responding right now. Try again soon.\n",
"audioResponse": "//NExAASW..."content_copy,
"debugInfo": {
"sharedDebugInfo": [
{
"name": "ExecutionResponse",
"debugInfo": "Failed to..."
}
]
}
}
応答のデバッグ情報は
「http_response から SDKResponse を解析できませんでした: 'HTTP/1.1 200 OK\r\nContent-Type: application/json;charset=UTF-8\r\nContent-Length: 218\r\nConnection: keep-alive\r\nDate : 2017 年 1 月 8 日 21:47:00 GMT\r\nサーバー: nginx/1.11.2\r\nAccess-Control-Allow-Credentials: true\r\nAssistant-Interaction-Error-Code: 1\r\nAssistant -Interaction-Error-Message: Empty speech response\r\nCache-control: no-cache=\"set-cookie\"\r\nSet-Cookie: AWSELB=9D5B4D210CCFFAF1BE1E0CD7C7E6FCBD7B46140CAA45DBF2953C1CA6A2C5B5AD15740DAC3D9FC21AE7E6356E101785BA33F8274D819A39085F4BDBBE52D3F44CD1BB461230;PATH=/\r\nX-Cache: Missクラウドフロントから\r\n経由: 1.1 51c76241371dfc20d25094a51b4759eb.cloudfront.net (CloudFront)\r\nX-Amz-Cf-Id: bP2EaYL-00IkMABSCWhwbaDr5GU7sIgC02OB-31LGojecexWQayetQ==\r\n\r\n{\"\" "空の音声応答\",\"apiResponse\":{\"id\":\"ac3551e9-1f71-4f38-8ef7-efa8acff78aa\",\"timestamp\":\"2017-01-08T21:47:00.191 Z\",\"result\":{},\"status\":{\"code\":200,\"errorType\":\"success\"},\"sessionId\":\"1483912013331 \"}}'"
ここで何が間違っているのかわかりません。
アップデート:
音声メッセージを ASCII 文字に変換しましたが、ホームは次のメッセージで応答しています。
I'll just need to get your from Google. Is that ok?
音声ラベルに添付された応答で送信しているものの代わりに。また、シミュレーターに表示される JSON は、webhook から返されるものではありません。