はじめに
アマゾンみたいにわかりやすい関数側の説明がなかったので、備忘録的に。
最初にやっておく設定
- Dialogflowのfulfillmentのinline Editorをオンに
- Intentの下のFulfillmentのところを
Use Webhook
にチェックをいれる
サンプルコード
'use strict';
process.env.DEBUG = 'actions-on-google:*';
const App = require('actions-on-google').DialogflowApp;
const functions = require('firebase-functions');
// Intentのアクション名かくよー
//最初はDefault Welcome Intentに書いたアクションに行くから注意
const FOO_ACTION = "foo";
const HOGE_ACTION = 'hoge';
// パラメータのかくよー
const FOOFOO = "foofoo";
const HOGEHOGE = "hogehoge";
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const app = new App({request, response});
function hoge_function (app) {
// Entitiesを取得
let params = app.getArgument(HOGEHOGE);
//googleさんが喋る言葉をかくよ
app.tell("google assistantが返す文字だよー");
//app.ask("askだと会話はおわらないよー");
}
function foo_function (app) {
let params = app.getArgument(FOOFOO);
app.tell("intentのアクションによってかえるよー");
}
let actionMap = new Map();
actionMap.set(FOO_ACTION, foo_action);//インテント名と関数名
actionMap.set(HOGE_ACTION, hoge_action);
app.handleRequest(actionMap);
});