我已经使用nodejs在dialogflow上的Google Actions中创建了一个应用程序。首先,它托管在heroku服务器上,但现在我想使用https托管在服务器中。
它在heroku服务器上正常工作,但在我的服务器上不工作。它返回错误“ MalformedResponse:Webhook错误(206)”
const express = require('express');
const bodyParser = require('body-parser');
var https = require('https');
var fs = require('fs');
const {
dialogflow,
} = require('actions-on-google');
const app = dialogflow();
const expressApp = express().use(bodyParser.json());
// degault welcome intent on startup
app.intent('Default Welcome Intent', conv => {
conv.ask('Hi, Ask me about Customer Ledger, Outstanding....');
});
app.intent('Default Fallback Intent', conv => {
conv.ask('I didnt understand. Can you tell me something else?');
});
var options = {
key: fs.readFileSync('ssl/office.key'),
cert: fs.readFileSync('ssl/office.crt')
};
var server = https.createServer(options, expressApp).listen(3000, function(){
//express().use(bodyParser.json(), app);
expressApp.post('/fulfillment', app);
console.log("Express server listening on port 3000" );
});
有人可以建议我我的代码有什么问题吗?Simulator Screenshot
答案 0 :(得分:0)
如果您使用的是express,并且之间没有其他层(如Heroku一样)将请求从端口443转发到3000,则该请求可能未到达目标端口