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

公式サンプルとの差分

// 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

conv.data.conversation_title = 'PLAY_A_MEMO';

例)メモを記録したいという発話を拾った時に、

フラグを立てるイメージ

ActionsSdkConversation.user.storage

conv.user.storage.memo_list = [memo1, memo2];

例)保存しておきたいメモ内容を配列で確保しておく場合

Google Homeアプリ 開発ハンズオン

By Teruhisa Yamamoto

Google Homeアプリ 開発ハンズオン

  • 153