Я пытаюсь создать сценарий, который принимает ввод от пользователя, запускает его через Dialogflow, а затем возвращает его обратно пользователю.Платформа, от которой я получаю информацию, поддерживает только Node.js.Я размещаю бота через glitch.com, но не думаю, что это является причиной проблемы.Я хотел проверить здесь, прежде чем отправлять отчет об ошибках в репозиторий GitHub.
var bot = 'the platform i use to accept inputs and send outputs'
bot.on("message", async message => {
console.log(message.content); // Log chat to console for debugging/testing
if (message.content.indexOf(config.prefix) === 0) { // Message starts with your prefix
let msg = message.content.slice(config.prefix.length); // slice of the prefix on the message
let args = msg.split(" "); // break the message into part by spaces
let cmd = args[0].toLowerCase(); // set the first word as the command in lowercase just in case
args.shift(); // delete the first word from the args
// You can find your project ID in your Dialogflow agent settings
const projectId = process.env.PROJECT_ID; //https://dialogflow.com/docs/agents#settings
const sessionId = 'quickstart-session-id';
var query = msg;
const languageCode = 'en-US';
// Instantiate a DialogFlow client.
const dialogflow = require('dialogflow');
const sessionClient = new dialogflow.SessionsClient();
// Define session path
const sessionPath = sessionClient.sessionPath(projectId, sessionId);
// The text query request.
const request = {
session: sessionPath,
queryInput: {
text: {
text: query,
languageCode: languageCode,
},
},
};
// Send request and log result
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);
});
}
return;
});
Это соответствующая часть кода.Для тех, кому интересно, process.env.PROJECT_ID
- это то, что glitch.com использует для чего-то частного.Поскольку я не хочу, чтобы случайные люди получали в руки мой идентификатор проекта, я скрываю его там, и сбой скрывает его от тех, кого я явно не приглашаю.
Каждый раз, когда я выполняю это и пытаюсь запроситьбот, он возвращает ошибку Uncaught Promise Error: TypeError: dialogflow.SessionsClient is not a constructor
.
Если кто-то может указать мне, что мне не хватает, или в чем проблема, это было бы здорово!