我有一个对话框流程意图,我想编写一个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"
答案 0 :(得分:0)
就我而言,这是解决方案:
投入:
url: baseUrl + "query?v=20170712",
而不是:
url: baseUrl + "query",
在ajax调用中,解决了我的问题。
答案 1 :(得分:0)
对话框流响应包含在speech和displayText propery中。