如何捕获对话流响应?

时间:2018-01-24 00:01:18

标签: dialogflow

我有一个对话框流程意图,我想编写一个javascript代码来获取此意图的json响应并将其显示在html文件中。我使用了webhook实现这个意图,现在我想在一个html文件中显示dialogflow和user之间的聊天记录。我用这个javascript代码提取并有对话框响应:

baseUrl = "https://api.dialogflow.com/v1/",
$.ajax({
    type: "POST",
    url: baseUrl + "query",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    headers: {
      "Authorization": "Bearer " + accessToken
    },
    data: JSON.stringify({query: text, lang: "en", sessionId: "b1973977-20be-4cdc-85a5-7f4225cfdb5a"}),

    success: function(data) {
      console.log("data",data);
      prepareResponse(data);
    },
    error: function() {
      respond(messageInternalError);
    }
  });
}

但它返回的json是不正确的,并且没有履行部分,以便提取正确的数据并显示响应。

返回的json是:

id: "a0114c2a-afdb-415e-af08-e7a2c5b7d925"
lang: "en"
result: {…}
action: ""
metadata: Object { intentName: "Edit.Attributes", intentId: "9601923d-596b-44df-80de-92dff61869cf", webhookUsed: "true", … }
parameters: Object { VarName: […], percentage: "20%", currncy: "", … }
resolvedQuery: "Change the attribute vacancy rate to 20%"
score: 1
source: "agent"
speech: ""
__proto__: Object { … }
sessionId: "b1973977-20be-4cdc-85a5-7f4225cfdb5a"
status: Object { code: 200, errorType: "success", webhookTimedOut: false }
timestamp: "2018-01-24T12:35:46.342Z"

2 个答案:

答案 0 :(得分:0)

就我而言,这是解决方案:

投入:

url: baseUrl + "query?v=20170712",

而不是:

url: baseUrl + "query",
在ajax调用中,

解决了我的问题。

答案 1 :(得分:0)

对话框流响应包含在speech和displayText propery中。