使用自托管HTTPS服务器上的Node JS在Dialogflow上在Google App上执行主机操作(MalformedResponse:Webhook错误(206))

时间:2019-05-29 07:14:32

标签: node.js https dialogflow actions-on-google

我已经使用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

1 个答案:

答案 0 :(得分:0)

如果您使用的是express,并且之间没有其他层(如Heroku一样)将请求从端口443转发到3000,则该请求可能未到达目标端口