正确的 DialogFlow Google 助手的 fulfillmentMessages 格式
Correct fulfillmentMessages format for DialogFlow Google Assistant
我正在尝试使用 Java DialogFlow API 为 Google 助手构建 webhook 响应。我的回复在 DialogFlow 的 'Try It Now' 功能中运行良好,但 Google 助手一直说 "isn't responding right now. Try again later".
作为一项实验,我设法让 Google 助手通过使用非 webhook 响应(即通过正常的 DialogFlow Intent UI)工作。当我查看我的历史记录时,我看到工作响应如下所示:
"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 字符串作为我的文本正文,它似乎仍然不起作用。
return 使 Google 助手可以阅读的默认消息格式的正确方法是什么?我试过 simpleResponse
也没有用
以下是听到回复所需的最低回复
{
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "Welcome! Do you want me to change color or pause spinning? You can also tell me to ask you later."
}
}
]
}
}
}
}
当然,对于 java,您可以使用 API 来生成所需的输出响应。
另外,如果您将 basicCards 或 Images 用于智能显示器,那么它绝对有帮助
更多使用 API 代替。
您还可以检查模拟器的响应。
我正在尝试使用 Java DialogFlow API 为 Google 助手构建 webhook 响应。我的回复在 DialogFlow 的 'Try It Now' 功能中运行良好,但 Google 助手一直说 "isn't responding right now. Try again later".
作为一项实验,我设法让 Google 助手通过使用非 webhook 响应(即通过正常的 DialogFlow Intent UI)工作。当我查看我的历史记录时,我看到工作响应如下所示:
"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 字符串作为我的文本正文,它似乎仍然不起作用。
return 使 Google 助手可以阅读的默认消息格式的正确方法是什么?我试过 simpleResponse
也没有用
以下是听到回复所需的最低回复
{
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "Welcome! Do you want me to change color or pause spinning? You can also tell me to ask you later."
}
}
]
}
}
}
}
当然,对于 java,您可以使用 API 来生成所需的输出响应。 另外,如果您将 basicCards 或 Images 用于智能显示器,那么它绝对有帮助 更多使用 API 代替。 您还可以检查模拟器的响应。