设置一个非常简单的"打开设备"使用Google Home和NodeJS?

时间:2017-12-15 13:19:09

标签: node.js google-home dialogflow google-assist-api

到目前为止,我已经在网上找到了大量的指南,展示了如何设置NodeJS后端,Dialogflow可以与之交谈。但是,Dialogflow以前是API.AI,所有旧指南现在基本上都是错误的。

当我尝试这样做时:

require('actions-on-google').ApiAiAssistant

它会告诉我:

  

导入类名ApiAiAssistant DEPRECATED ,使用DialogflowApp

但即使将ApiAiAssistant更改为DialogflowApp也无法正常工作。以下是一些操作的示例:https://github.com/greenido/bitcoin-info-action/

正如您所看到的,它在很长一段时间内没有更新,代码也没有实际工作(即使我将意图导入到Dialogflow等中)。

我基本上想要的是:提供Google Home参数(例如turn on TV,其中TV作为参数)并在我的NodeJS后端处理。我该怎么办呢?它可以带或不带Dialogflow。

另外,甚至可以说Hey Google, turn on TV?到目前为止,我所看到的所有例子都是Hey Google, launch MY_ACTIONHey Google, ask MY_ACTION to INTENT,这些例子很慢而且很烦人。

1 个答案:

答案 0 :(得分:0)

获得了一些更新的代码。适用于DialogflowApp:

const fs = require("fs");
const express = require("express");
const https = require("https");
const bodyParser = require("body-parser");
const Assistant = require('actions-on-google').DialogflowApp;

const app = express();
app.use(bodyParser.json());

const options = {
    cert: fs.readFileSync("./cert.pem"),
    key: fs.readFileSync("./key.pem"),
    ca: fs.readFileSync("./chain.pem")
};

app.post("/google", (req, res) => {
    const assistant = new Assistant({ request: req, response: res });
    let device = assistant.getArgument("device");
    assistant.tell("Turning on " + device);
});

app.listen(5004);
https.createServer(options, app).listen(5005);