Slide 1

Slide 1 text

Echo Spot と API で インタラクティブな カスタムスキル API Meetup Tokyo #28 (Sep 14, 2018) KIKUCHI Joe

Slide 2

Slide 2 text

自己紹介 名前:菊池条 勤め先:フォージビジョン株式会社 好きなAWS サービス:AWS Lambda, AWS X-Ray API Meetup Tokyo #28 (2018/9/14) 2

Slide 3

Slide 3 text

会社紹介 http://forgevision.com/ API Meetup Tokyo #28 (2018/9/14) 3

Slide 4

Slide 4 text

Echo Spot 2018 年7 月26 日 日本でも出荷開始 「スタイリッシュでコンパクトなEcho Spot は、ス マートスピーカーの機能にスクリーンが加わって さらに便利に」 - Amazon 製品紹介ページより 2.5 インチ タッチスクリーン API Meetup Tokyo #28 (2018/9/14) 4

Slide 5

Slide 5 text

インタラクティブな Alexa カスタムスキルを 作ってみた API Meetup Tokyo #28 (2018/9/14) 5

Slide 6

Slide 6 text

作ったスキル クイズを出題 クイズに関係した画像の表示 回答は音声か画面タッチで可能 ASK CLI とASK SDK for Node.js を使って TypeScript で開発 API Meetup Tokyo #28 (2018/9/14) 6

Slide 7

Slide 7 text

使用したAPI クイズ研 API http://quizken.jp/api Google Custom Search JSON API https://developers.google.com/custom- search/json-api/v1/overview API Meetup Tokyo #28 (2018/9/14) 7

Slide 8

Slide 8 text

画像表示 カスタムスキルの設定でDisplay インターフェース を有効にする レスポンスのdirectives にDisplay.RenderTemplate を 追加 テンプレートのbackgroundImage やimage に画像の URL を指定 API Meetup Tokyo #28 (2018/9/14) 8

Slide 9

Slide 9 text

画像表示(コード例) const image = new ImageHelper() .withDescription(description) .addImageInstance(url) .getImage(); const display: BodyTemplate3 = { image, textContent, title, type: 'BodyTemplate3', }; return handlerInput.responseBuilder .speak(speechText) .addRenderTemplateDirective(display) .getResponse(); API Meetup Tokyo #28 (2018/9/14) 9

Slide 10

Slide 10 text

タッチイベント テンプレートのタッチイベントを起こしたい箇所 のtoken を設定 テキスト中の特定の箇所にタッチイベントを入れ たい場合はTouch Me! のようにマークアップする Display.ElementSelected リクエストが発行されるの で、リクエストに含まれるtoken の値を見て適切に 処理する API Meetup Tokyo #28 (2018/9/14) 10

Slide 11

Slide 11 text

タッチイベント(コード例) const elementSelectedRequestHandler: RequestHandler = { canHandle(handlerInput: HandlerInput) { return handlerInput.requestEnvelope.request.type === 'Display.ElementSelected'; }, handle(handlerInput: HandlerInput) { const { token } = handlerInput.requestEnvelope.request as ElementSelectedRequest; return doSomething(token); }, }; API Meetup Tokyo #28 (2018/9/14) 11

Slide 12

Slide 12 text

デモ API Meetup Tokyo #28 (2018/9/14) 12

Slide 13

Slide 13 text

作っているもの 会社の受付スキル 来客の要件を聞き、内容に応じた通知を行う A さんのお客様の場合はSlack でmention 、B さん のお客様の場合は電話、etc API Meetup Tokyo #28 (2018/9/14) 13

Slide 14

Slide 14 text

会社の受付スキル(構成図) API Meetup Tokyo #28 (2018/9/14) 14

Slide 15

Slide 15 text

ForgeVision Engineer Blog https://techblog.forgevision.com/ API Meetup Tokyo #28 (2018/9/14) 15

Slide 16

Slide 16 text

ご清聴ありがとう ございました API Meetup Tokyo #28 (2018/9/14) 16