Настроить очень простое устройство включения с помощью Google Home и NodeJS?

До сих пор я нашел множество руководств в Интернете, в которых показано, как настроить серверную часть NodeJS, с которой может общаться Dialogflow. Тем не менее, Dialogflow ранее был API.AI, и все старые руководства теперь в основном неверны.

Когда я пытаюсь сделать это:

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

Он скажет мне:

Импорт имени класса ApiAiAssistant УСТАРЕЛ, используйте 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_ACTION или Hey Google, ask MY_ACTION to INTENT, что медленно и раздражает.


person MortenMoulder    schedule 15.12.2017    source источник


Ответы (1)


Получил обновленный код. Отлично работает с 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);
person MortenMoulder    schedule 15.12.2017