Ответ Webhook не работает api.ai: Не удалось проанализировать SDKResponse из http_response Действия в Google

Я использую веб-перехватчик api.ai для реализации Action on Google. Я следую формату запроса и ответа, описанному здесь

Ответ, который я отправляю обратно от веб-перехватчика:

{
    "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, он говорит: «Ваш агент сейчас не отвечает. Повторите попытку позже» со следующим ответом JSON.

{
    "response": "Car Bot isn’t responding right now. Try again soon.\n",
    "audioResponse": "//NExAASW..."content_copy,
    "debugInfo": {
        "sharedDebugInfo": [
            {
                "name": "ExecutionResponse",
                "debugInfo": "Failed to..."
            }
        ]
    }
} 

Информация об отладке в ответе

"Не удалось проанализировать ответ SDKResponse от http_response: 'HTTP / 1.1 200 OK \ r \ nContent-Type: application / json; charset = UTF-8 \ r \ nContent-Length: 218 \ r \ nConnection: keep-alive \ r \ nDate : Вс, 8 января 2017 г., 21:47:00 GMT \ r \ nСервер: nginx / 1.11.2 \ r \ nAccess-Control-Allow-Credentials: true \ r \ nКод ошибки-взаимодействия с помощником: 1 \ r \ nПомощник -Взаимодействие-Error-Message: Пустой ответ речи \ г \ nCache-контроль: нет кэша = \ "Set-Cookie \" \ г \ nПравильно-Cookie: AWSELB = 9D5B4D210CCFFAF1BE1E0CD7C7E6FCBD7B46140CAA45DBF2953C1CA6A2C5B5AD15740DAC3D9FC21AE7E6356E101785BA33F8274D819A39085F4BDBBE52D3F44CD1BB461230; PATH = / \ г \ пХ-Cache: Miss из cloudfront \ r \ nЧерез 1.1 51c76241371dfc20d25094a51b4759eb.cloudfront.net (CloudFront) \ r \ nX-Amz-Cf-Id: bP2EaYL-00IkMABSCWhwbaDr5GU7sIgC02OB-31LGojecex message: \ nQayQecex = "\" "Пустой речевой ответ \", \ "apiResponse \": {\ "id \": \ "ac3551e9-1f71-4f38-8ef7-efa8acff78aa \", \ "timestamp \": \ "2017-01-08T21: 47: 00.191Z \ ", \" результат \ ": {}, \" статус \ ": {\" код \ ": 200, \" errorType \ ": \" успех \ "}, \" sessionId \ ": \" 1483912013331 \ "}} '"

Я не понимаю, что здесь не так.

ОБНОВЛЕНИЕ:

Я преобразовал свое речевое сообщение в символы ASCII, но теперь Home отвечает следующим сообщением.

I'll just need to get your from Google. Is that ok?

Вместо того, что я отправляю в ответе, прикрепленном к метке речи. Также JSON, показанный в симуляторе, - это не то, что я возвращаю из веб-перехватчика.


person pyus13    schedule 08.01.2017    source источник
comment
Вы пишете, что тестируете его с помощью «Веб-симулятор для дома Google». Я предполагаю, что вы дошли до этого через страницу интеграции API.AI - потому что, если бы вы сразу перешли к веб-симулятору, он не работал бы с реализацией API.AI.   -  person Tom    schedule 09.01.2017
comment
Да, вы правы, я прошел через API.AI нажал кнопку предварительного просмотра. Кроме того, приветственное сообщение после того, как я говорю «Поговори с моим агентом», дает мне понять, что я нахожусь в нужном месте.   -  person pyus13    schedule 09.01.2017
comment
@Tom Обновил вопрос, на самом деле мне нужно отправлять речь в формате ASCII, но теперь возникли новые проблемы.   -  person pyus13    schedule 09.01.2017


Ответы (1)


Как вы поняли, ваша первая проблема, вероятно, была связана с тем, что в вашем тексте были символы, отличные от ASCII.

С обновлением проблема, вероятно, связана с тем, что вы указываете permissions_request, но не запрашиваете никаких разрешений. Если вы полностью опустите эту часть, нормальный диалог продолжится так, как вы ожидаете.

person Prisoner    schedule 09.01.2017