Alexaのスキルでアプリを起動する

AlexaでFireTV上のアプリを起動するまで

はじめに

Echo DotなどのAlexa搭載端末からFireTV Stickなどの端末上にあるアプリを起動させるまでの手順についてまとめる.
現状, USリージョンでのみ対応している.

AlexaのSkillの概要

スキルの種類

AlexaのSkillは4種類.

  • カスタム
  • フラッシュブリーフィング
  • スマートホーム
  • ビデオ

カスタムスキル

ユニークなスキルを作成しましょう。カスタムモデルでスキルの対話をすべて作成できます。

フラッシュブリーフィングスキル

ユーザーが自分のニュースフィードを管理できます。このプリビルドモデルを使用すると、聞きたいコンテンツを自分で管理できるほか、ジャンル別にトピックを検索できます。

スマートホームスキル

ユーザーが自分のスマートホームデバイスを管理できます。このプリビルドモデルを使用すると、照明やその他のデバイスの電源を座ったままオフにできます。

ビデオスキル

接続しているビデオデバイスで指定したコンテンツを再生させたり, 音量などの操作を行える。

  • コンテンツの検索, 再生
  • 再生/一時停止などの制御
  • 音量の変更
  • ビデオデバイスのOn/Off
  • アプリ, GUIの起動
  • 録画 など

スキルの処理概要


動画を再生するスキルの作成

動画のコンテンツを再生するスキルはビデオスキルを作成してユーザーからの応答を受け取る.
その後, ビデオスキルを介してユーザーからのリクエストをLambdaで適切な処理を行いAlexaSkillに応答する.

  • 適切な処理: コンテンツの検索を行うことや, コンテンツの再生/停止などを行う応答を作ること

ビデオスキルの実装

AlexaのスキルはAWSとは別に管理されており, 以下のコンソールで作成する.
https://developer.amazon.com/alexa/console/ask

コンソールでやること

  • default languageでUSを選択する. (日本語ではビデオスキルの作成がまだ行えない)
  • Create Skill
  • Input Skill Name
  • Select Video Skill
  • copy skill ID

Lambdaの実装

とりあえず指定のアプリを起動するところまでを実装する.
LambdaはAWSのサービスなので, 以下のAWSのコンソールから作成する.
https://console.aws.amazon.com/console/home

  • Lambdaの管理画面を開く
  • create function
    • Name, Runtime(得意な言語), Roleを選択する
  • Triggerとして, Alexa Smart Home を追加する
    • Application IDは, ビデオスキルの実装で作成したスキルのスキルIDを入力する
    • Enable Triggerのチェックボックスは, チェックするとスキルから呼ばれるようになり料金が発生するようになるので十分なテストを行ってから入れること
  • Skillとしての振る舞いを実装する
    起動以外については, https://developer.amazon.com/ja/docs/device-apis/alexa-launcher.htmlVideo Skill API Referenceを参照すること.

Alexa SkillへLambdaのARNを登録

  • 再度作っていたビデオスキルの画面に戻り, Default Endpointに上記で作成したLambdaのARNを入力する.
    • skillを使っているユーザーの地域に合わせてlambdaのEndpointも変えることができるので, 北米ユーザー向けはUSリージョンで作成したLambda, ヨーロッパユーザー向けにはEUリージョンで作成したLambdaと使い分けることができる

    Alexa Skillのテスト

  • 手順: https://developer.amazon.com/ja/docs/devconsole/test-your-skill.html
  • 今回はビデオスキルなのでアカウントリンクとアクセス権限の設定が必須なので行う.
    • (抜粋) 一部のスキルでは、エンドユーザーのIDを別のシステムのユーザーに接続できるようにする必要があります。これを実現するための仕組みを、アカウントリンクと呼び、Alexaに設定されているユーザーと、スキルのシステム(開発者のシステム)のユーザーアカウントを結び付けることを実現します
  • https://developer.amazon.com/ja/docs/custom-skills/link-an-alexa-user-with-a-user-in-your-system.html
  • アカウントリンクはOAuthに則った認証方式を用いる必要がある

ここまでのまとめ

OAuthの認証が必要になったので, Alexaからアプリを起動するところまでをやってみたかったが一旦ここで終わりにする.
ここまでの設定を行えば起動するはず.

参考

Androidのローカルテストまとめ

概要 Androidテスト全書なども発刊されたり、今回のDroidKaigi2019でもAndroidのテスト周りの発表が多かったように思います。 直近のプロジェクトでもテストのカバレッジ50%以上を目指してテストコードを書いているのでその中でのハマったところやどういった観点で...