Webhook呼叫失败。错误:无法解析webhook JSON响应:无法找到字段:消息中的消息google.cloud.dialogflow.v2.Intent.Message

时间:2018-05-17 11:47:00

标签: webhooks dialogflow

我使用Dialogflow构建了一个机器人并将其连接到本地webhook(现在通过ngrok访问它)。我能够收到Dialogflow的回复,但我无法重播。我按照这里显示的JSON结构 - Test response from webhook。但我在Dialogflow中收到以下错误。

  

Webhook调用失败。错误:无法解析webhook JSON响应:   找不到字段:消息中的消息   google.cloud.dialogflow.v2.Intent.Message。

以下是我发送给Dialogflow的回复 -

{
   "messages":[
      {
         "speech":"Text response",
         "type":0
      }
   ]
}

请告诉我应该发送给Dialogflow的答复的确切格式。

5 个答案:

答案 0 :(得分:3)

从v1到v2,响应对象几乎完全改变。对于简单的文本,您可以使用like

{
  "fulfillmentText": "Text response",
  "fulfillmentMessages": [
    {
      "text": {
        "text": ["Text response"]
      }
    }
  ],
  "source": "<Text response>"
}

答案 1 :(得分:3)

我遇到了同样的问题,在dialogflow上使用以下json解决了这个问题:

enter image description here

我制作了一个简单的节点程序,该程序接受后响应并返回Dialogflow接受的json格式。您可以按照自己喜欢的任何方式发送请求。查看“投放状态”标签:

enter image description here

答案 2 :(得分:0)

单靠消息是不够的。有关预期参数的完整列表和JSON格式,请参阅Dialogflow V2 webhook履行文档。

您确定使用的是DialogFlow API的V2吗?

答案 3 :(得分:0)

字段messageswas renamed/refactored to fulfillmentMessages-“找不到”表示它不是定义中的属性。 这是v2接受的一些可比较的结果:

{
   "fulfillmentText": "response text",
   "fulfillmentMessages": [{"simpleResponses": {"simpleResponses": [   {
      "textToSpeech": "response text",
      "displayText": "response text"
   }]}}]
}

答案 4 :(得分:0)

使用 Webhook Playground 为 Dialogflow API 或已弃用但仍然有效的 Actions SDK 获取适当的响应。 Google Actions Builder/SDK 框架还有更新且不同的 API,如下所示:

DiaglowFlow JSON 响应:

{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "Webhook worked.",
              "displayText": "Webhook worked."
            }
          }
        ]
      }
    }
  }
}

操作 SDK 响应:

{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Webhook worked.",
                "displayText": "Webhook worked."
              }
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ]
    }
  ]
}

动作生成器/SDK。请注意,需要返回会话 ID。

{
  "session": {
    "id": "example_session_id",
    "params": {}
  },
  "prompt": {
    "override": false,
    "firstSimple": {
      "speech": "Hello World.",
      "text": ""
    }
  },
  "scene": {
    "name": "SceneName",
    "slots": {},
    "next": {
      "name": "actions.scene.END_CONVERSATION"
    }
  }
}