公開日:2018-02-11


おはようございます。
本日は 2/11(祝)、神戸三宮で開催中の Alexa Day 2018 に来ています。
かなり広い会場なんですが、朝から多くの人が来ていて熱気に包まれています。
今日は Alexa Day 2018 のセッションを聴きながら、GAが待たれる Alexa のプッシュ通知機能 について少し書いてみようと思います。
_※ 2/15(木)追記
_こちらのブログ記事にありますように、日本語環境でもプッシュ通知が使えるようになったため、記事の内容を一部修正し、末尾の動画を差し替えました。
通知については こちら に記載がありまして、現在「開発者プレビュー」が行われています。 専用の申し込みフォーム に色々と記入して申し込むと、ある日 Martinさんという方から以下のようなメールが届きます。

martinほげほげ@amazon.com というアドレスから届いたメール
このメールが届いた開発者アカウントでログインし、カスタムスキルの「設定」画面へ行くと「アクセス権限」の項に「Notifications」が追加されています。
※ なお、以下の内容は 本日2/11現在の「開発者プレビュー」の内容に基づいており、GAの際には仕様変更される可能性がある旨ご留意ください。

現状は Alexa Notifications Preview に参加しているアカウントでなければ「Notifications」の選択肢が表示されないと思います
このチェックを付けると、カスタムスキルでプッシュ通知を処理できるようになります。
また、このスキルを使用するユーザー側でも Alexaアプリの「スキルの設定」画面で「スキルに通知の送信を許可」する権限設定を行う必要があります。

このスキルの通知を許可したユーザー宛にのみ通知を送ることができます。
冒頭に紹介した 「通知の概要」で 通知の全体フローを確認してみましょう。
- ユーザーが Alexaアプリを使用して通知の受信を許可します。
- 通知機能を有効にした カスタムスキルを起動します。カスタムスキルは 対象ユーザーIDを認識できるので、通知を送る時のために当該ユーザーのIDを DynamoDB 等に保存しておきます。
- 通知を送りたいタイミングで、AWS Lambda Function 等を使用して Skill Messaging API for Alexa を叩きます。この際、送信先のユーザーID、カスタムスキルのクライアントID、シークレットを指定します。
- カスタムスキルは “Messaging.MessageReceived”インテントで通知を受信します。この中でユーザーに通知する内容を Notifications API For Alexa を使用して設定します。
- Alexaデバイスは通知を受信したことをユーザーに知らせます。知らせる方法はデバイスによって異なっており、Echo Dot の場合はリングが黄色く光って受信音が鳴る(本記事末尾の動画でご確認ください)、Echo Show や Echo Spot のような画面を持っているデバイスの場合は受信音と共に 通知内容テキストを画面に表示します。
- ユーザーが「Alexa、何かお知らせある?」と尋ねます。Alexa は通知の内容を読み上げ、終わると削除します。
具体的なコードを示します。
2. のユーザーIDは カスタムスキルの Lambda Function 内で

this.event.session.user.userId あるいは this.event.context.System.user.userId で取得できます。
3. の Skill Messaging API for Alexa を叩く部分は以下のように実装します。
で、コードの解説をしていこうと思ったのですが、長くなるので別の機会に譲り、今日は Alexa Day 2018 に集中します・・
朝からギッシリとセッションが詰まっていたのですが、最も印象に残ったのは!!





こけしにインスパイアされた サーバーワークス
「こけし」と Alexa への愛に溢れたこのセッションでした。
全体を通して感じたのは、これまでは Echo 等の Alexa搭載デバイスがあって、カスタマーが自ら Alexa に繋げたいデバイスやセンサー等を認識させスマートホームスキルやカスタムスキルから操作するというパターンが多かったと思うのですが、今後はデバイスやセンサー自らが Alexaを搭載することも増えていくだろう、自社製スキルからしか操作できないデバイスだけでなく、APIを公開して制御できるようにしたデバイスや家電が増え、エコシステムが形成されていくのではないかと思いました。
あとは、インテントをたくさん作って発話の揺れを吸収するのは皆さん苦労されている、キッチンや浴室など、手が塞がっている/使いたくない状況で VUIは非常に有効、スキルの中で使用するデータを管理するのに kintone のような開発者と非開発者の双方に優しいデータベースがやっぱり向いているのではないかといったところでした。
最後は Alexaスキルコンテスト、題して “Alexa Ninja Warrior” !!

弊社が誇るコミュニティ・マフィア2名の並び
ここでも、出来るだけ手を使いたくない/使えない状況で VUIは有効で、シンプルな会話で必要十分な機能を満たすことが日々使うスキルには必要だなと思いました。
なお、弊社 西島が発表したスキルは、こちらでソースを公開しています!
データが Javascriptの中に書かれていたので、kintone アプリから取得できるようにプルリクしておきました(笑
→ https://github.com/k-nishijima/uchina-guchi-skill/pull/1
こちら のコードと同じ要領なので、よろしければ参考にしていただければ
その他、大盛況だった今回の Alexa Day 2018 まとめは こちら で!
最後に プッシュ通知が実際に動作している様子をご紹介します。
通知を受信した時点で「ポコッ」と通知音が鳴り、リングが黄色く光ります。
これに対して人間が「アレクサ、通知は何?」と指示すれば通知の内容を読み上げてくれます。
プッシュ通知の話の続きは、来週「Alexa Day 2018 re:Cap — AIアシスタントAlexaと、Alexaを支える最新技術を学ぶ1日再び –」があるので、この頃を目途に書ければいいなと思っています。
※ 2/20(火)追記
Alexaプッシュ通知について続きを解説した 2本の記事は、現在限定公開にしています。
ご興味のある方がおられましたら私までコンタクトいただければと思います。
投稿者プロフィール
