Google Homeアプリ
開発ハンズオン
自己紹介
- Teruhisa Yamamoto
- フリーランスエンジニア
- 代表Google Homeアプリ
「育児ノート」
ハンズオン内容
- 概要
- 教材ベースで各々が好きなペースで進んでOK
- 音声アプリ作りの場なのでガヤガヤしましょう
- 積極的に質問してください
- 様子を見つつコーヒーブレイクをとります
- ネタ:イベントに求める内容、スマートスピーカーへの期待などを意見交換
- 流れ
- Lesson 01: 開発準備
- Lesson 02: 入門アプリの構築(主に写経)
- Lesson 03: メモアプリを作ってみよう
- 教材
https://github.com/ebisu-voice-production/handson-20180428
レッスン概要
- Lesson 01:開発準備
- Node.js v6.11.5インストール
- gactions CLIのインストール、設定
- プロジェクト作成場所の確認、スマホでAssistant起動
-
Lesson 02:入門アプリ
- 言った言葉をそのまま喋らせるアプリを目指します
- 自分で考えたい人はまずは写経せずにコーディングしてみましょう
-
Lesson 03:実践メモアプリ
- 方向性を教材から読み取り自身で実装してみましょう
- 起動中の会話の文脈を引き継ぐ方法、アプリ起動間で参照できるデータの保存方法などを習得
- お題を参考にカスタマイズ
START
基本
const functions = require('firebase-functions');
const app = require('actions-on-google').actionssdk();
const mainIntent = conv => {
conv.ask('hello');
};
app.intent('actions.intent.MAIN', mainIntent);
exports.echo = functions.https.onRequest(app);
Cloud Function名
初回起動時=MAIN
第1引数にActionsSdkConversation,
第2引数にraw input text
公式サンプルとの差分
![](https://s3.amazonaws.com/media-p.slid.es/uploads/423485/images/4859834/スクリーンショット_2018-04-28_0.02.01.png)
// package.json
"main": "src/index.js",
"scripts": {
"firebase": "firebase",
},
"devDependencies": {
"firebase-tools": "^3.18.2"
},
// firebase.json
{
"functions": {
"source": "./"
}
}
$ npm install -g firebase-tools
ActionsSdkConversation.data
![](https://s3.amazonaws.com/media-p.slid.es/uploads/423485/images/4859873/スクリーンショット_2018-04-28_0.24.02.png)
conv.data.conversation_title = 'PLAY_A_MEMO';
例)メモを記録したいという発話を拾った時に、
フラグを立てるイメージ
ActionsSdkConversation.user.storage
conv.user.storage.memo_list = [memo1, memo2];
例)保存しておきたいメモ内容を配列で確保しておく場合
![](https://s3.amazonaws.com/media-p.slid.es/uploads/423485/images/4859886/スクリーンショット_2018-04-28_0.30.49.png)
Google Homeアプリ 開発ハンズオン
By Teruhisa Yamamoto
Google Homeアプリ 開発ハンズオン
- 139