如何运行google assist和bitcoinInfo示例webhook index.js

时间:2018-02-15 14:06:43

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

我正在尝试在自己的服务器上运行google助手示例webhook nodejs应用程序(index.js),但不知道这是什么设置为webhosting .. https://codelabs.developers.google.com/codelabs/your-first-action-on-google-with-webhook/#2

在我的服务器上运行此应用的环境是什么?由于它不是作为监听服务器运行,我不能使用nginx,node_cgi与apache不成熟,我该如何运行这个样本?

2 个答案:

答案 0 :(得分:1)

非常好,您应该确保在页面上提交错误请求以表明它不清楚。

如上所示,代码旨在使用Google Cloud Functions运行。

这并不意味着您无法在自己的服务器上运行它 - 只需要知道如何在Apache或Nginx环境之外运行Node.js服务器。我已经看到了许多配置,但通常您会让Node.js服务器应用程序运行并侦听本地端口,并在特定路径的外部Web服务器和此端口之间拥有代理。

但即使在这种情况下这还不够 - 代码本身不会监听端口 - 它希望在表单中传递requestresponse对象具有JSON中间件的Express.js可以处理。为此,您需要安装Express.js库,然后开始使用以下代码进行监听:

const express = require('express');
const app = express();
app.use( express.json() );

app.get('/', (req, res) => exports.bitcoinInfo( req, res ));

app.listen(3000, () => console.log('App listening on port 3000!'));

答案 1 :(得分:0)

感谢@Prisoner和@Ido绿色链接的帮助,效果更好!运行样本的最小值我执行了以下操作:

使用mainfile main.js创建一个新的nodejs项目,install express和actions-on-google

mkdir googleActionServer
cd googleActionServer  
npm init  
npm install --save actions-on-google  
npm install --save express`

从google复制index.js并将其放入main.js

const express = require('express');
const bitcoinInfo = require("./index");
const app = express();
app.use( express.json() );

app.post('/', (req, res) => bitcoinInfo.bitcoinInfo( req, res ));

app.listen(3000, () => console.log('App listening on port 3000!'));

运行以下命令启动应用程序:

node ./main.js

要使用DialogFlow进行测试,请将ngrok下载并安装到/ usr / local / bin,然后运行:

ngrok http 3000

Ngrok将为您提供可从外部访问的网址,并将请求转发给nodejs应用。它还会为您创建一个https,因此将https地址复制粘贴到DialogFlow webhook地址中,然后就可以了