Javascript 如何解决此对话框流错误:未设置文本输入?
向给定的Nodejs代码发送以下post请求时出错。我在这里使用DialogFlowAPI 错误:Javascript 如何解决此对话框流错误:未设置文本输入?,javascript,node.js,dialogflow-es,Javascript,Node.js,Dialogflow Es,向给定的Nodejs代码发送以下post请求时出错。我在这里使用DialogFlowAPI 错误: Error: Input text not set. at Http2CallStream.call.on (/home/user/coding/chatbot/node_modules/@grpc/grpc-js/build/src/client.js:96:45) at Http2CallStream.emit (events.js:203:15) at process
Error: Input text not set.
at Http2CallStream.call.on (/home/user/coding/chatbot/node_modules/@grpc/grpc-js/build/src/client.js:96:45)
at Http2CallStream.emit (events.js:203:15)
at process.nextTick (/home/user/coding/chatbot/node_modules/@grpc/grpc-js/build/src/call-stream.js:71:22)
at process._tickCallback (internal/process/next_tick.js:61:11)
代码:
app.post("/api/df_text_query", async (req, res) => {
const request = {
session: sessionPath,
queryInput: {
text: {
text: req.body.text,
languageCode: config.dialogFlowSessionLanguageCode
}
}
};
let responses = await sessionClient.detectIntent(request);
res.send(responses[0].queryResult);
});
后请求:
{
"text":"HI"
}
我可能真的迟到了,但如果你找到了解决方案,请分享。非常感谢。这可能有助于解释问题以及您的代码如何帮助解决问题。“简洁是可以接受的,但更全面的解释更好。”()。
compare your code with this. Mine works..
const dialogflow = require("dialogflow");
const config = require("../config/keys");
// const { query } = require("express");
const sessionClient = new dialogflow.SessionsClient();
const sessionPath = sessionClient.sessionPath(
config.googleProjectID,
config.dialogFlowSessionID
);
module.exports = (app) => {
app.get("/", (req, res) => {
res.send({ hello: "AusTINE" });
});
app.post("/api/df_text_query", async (req, res) => {
const request = {
session: sessionPath,
queryInput: {
text: {
text: req.body.text,
languageCode: config.dialogFlowSessionLanguageCode,
},
},
};
let responses = await sessionClient
.detectIntent(request)
.then((responses) => {
console.log("Detected intent");
const result = responses[0].queryResult;
console.log(` Query: ${result.queryText}`);
console.log(` Response: ${result.fulfillmentText}`);
if (result.intent) {
console.log(` Intent: ${result.intent.displayName}`);
} else {
console.log(` No intent matched.`);
}
})
.catch((err) => {
console.error("ERROR:", err);
});
res.send({ do: "text query" });
});
app.post("/api/df_event_query", (req, res) => {
res.send({ do: "event query" });
});
};