Я пытаюсь использовать Java DialogFlow API для создания ответа веб-крючка для Google Assistant.Мои ответы работают нормально в функции «Попробуй сейчас» в DialogFlow, но Google Assistant продолжает говорить «не отвечает прямо сейчас. Повторите попытку позже».
В качестве эксперимента мне удалось заставить работать Google Assistant с помощьюответ, не связанный с webhook (то есть с помощью обычного пользовательского интерфейса DialogFlow Intent).Когда я посмотрел в своей истории, я увидел, что рабочий ответ выглядел следующим образом:
"queryText": "GOOGLE_ASSISTANT_WELCOME",
"action": "input.welcome",
"fulfillmentMessages": [
{
"text": {
"text": [
"[{\"type\":\"simple_response\",\"platform\":\"google\",\"textToSpeech\":\"Hello\"}]"
]
}
}
Это кажется мне очень странным, поскольку текстовое тело на самом деле является еще одним объектом в кодировке JSON (содержащим textToSpeech среди других полей),Когда я использую Java DialogFlow API следующим образом:
List<String> texts = new ArrayList<>();
texts.add( "Foo" );
message.setText( new GoogleCloudDialogflowV2IntentMessageText().setText( texts ));
, я получаю другой формат:
"fulfillmentMessages": [
{
"text": {
"text": [ "Foo" ]
}
}
Этот помощник Google говорит:
MalformedResponse: Failed to parse Dialogflow response into AppResponse because of empty speech response"
Даже еслиЯ пытаюсь использовать закодированную строку JSON в качестве моего текстового тела, но оно все равно не работает.
Как правильно вернуть формат сообщения по умолчанию, чтобы помощник Google мог его прочитать?Я попытался simpleResponse
, и это тоже не сработало