Я пытаюсь выяснить, как использовать DialogFlow с express / bodyParser и библиотекой node.js v2 функции без Firebase (на моем собственном сервере). Он работает с данными JSON запроса / ответа, но я не могу понять, что мне нужно сделать, чтобы использовать библиотечную функцию node.js dialogflow () . Вот фрагмент того, что у меня есть, которое работает с данными JSON:
const {config} = require('./config');
const https = require('https');
const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const options = {
key: fs.readFileSync(config.SSLDIR + 'privkey.pem'),
cert: fs.readFileSync(config.SSLDIR + 'cert.pem'),
ca: fs.readFileSync(config.SSLDIR + 'chain.pem')
};
const eapp = express();
eapp.disable('x-powered-by');
eapp.use(bodyParser.urlencoded({extended: true}));
eapp.use(bodyParser.json());
const server = https.createServer(options, eapp).listen(config.LISTEN_PORT, () => {
console.log(`API listening on port ${config.LISTEN_PORT}. Ctrl-C to end.`);
});
server.on('error', (e) => {
console.log(`Can't start server! Error is ${e}`);
process.exit();
});
// I have an Agent class that reads the request object and handles it
eapp.post("/actions", (request, response) => {
const agent = new Agent(request, response);
agent.run();
return;
});
eapp.all('*', (request, response) => {
console.log("Invalid Access");
response.sendStatus(404);
});
Единственное решение, размещенное в сети, которое я нашел, говорит, что использует следующий код:
const express = require('express');
const bodyParser = require('body-parser');
const { dialogflow } = require('actions-on-google');
const app = dialogflow();
express().use(bodyParser.json(), app).listen(3000);
Но я не совсем понимаю:
Для выполнения DialogFlow требуется конечная точка https, поэтому я не имею
создать сервер https, как я сделал?
Как я могу интегрировать этот пример в то, что я уже сделал, чтобы остановить
используя данные JSON и начните использовать функции node.js из
app = dialogflow () в библиотеке?