Alexa(amazon Echo)のIRKitスキルを作る(8)
次はスマートホームスキルを作ってみよう
4. IRKitのスマートホームスキルを作る
4.1 始めに
これまでIRKitで照明を点けたり消したりするAlexaスキルを作ってきました。このスキルはカスタムスキルという種類で、最も自由度が高いのですが、Echo Dotに話しかけるとき、いちいち呼び出し名を言わなければなりませんでした。つまり「アレクサ、"リモコン"で照明を点けて」という話し方になるわけです。
これがスマートスキルになると、呼び出し名が不要になり、「アレクサ、照明を点けて」で済むようになります。スマートスキルでの発話は「ウェイクワード+デバイス(装置)名+操作」となるので、より自然な感じになりますね。ただし、難点もありまして、デバイス(装置)名が一つしか指定できないんです。日本語には「照明」以外にも「明り」、「電灯」、「蛍光灯」や「ライト」などと様々な名称がありますよね。カスタムスキルの場合には、どの名称で指示しても天井にある照明器具を操作するインテントに結びつけることができました。ところがスマートスキルの場合は「照明」で登録されると「照明」しか許してもらえません。「アレクサ、明りを点けて」では「明り」という「照明」とは違うデバイス(装置)に対する指示だと解釈されます。
また、リビングとキッチンそれぞれに照明器具があった場合、各デバイスを区別する必要があるので、「アレクサ、リビングの照明を点けて」と「アレクサ、キッチンの照明を点けて」となります。せっかく呼び出し名が必要無くなったのに、ちょっと残念ですね。
それでもスマートホームスキルであれば、Alexaアプリで定型アクションに組み込ませることが出来るなど、メリットも大きいです。
と言うことで、IRKitで照明を操作するスマートホームスキルを作ってみようと思いますが、これも一般に公開できるレベルのものではありません。あくまで個人用に使うだけのものである事をご承知おきください。
4.2 スマートホームスキルに必要な機能
スマートホームスキルには、カスタムスキルには無い以下の機能を実装する必要があります。
- ユーザ認証の仕組み
スマートホームデバイスのユーザでもない人が勝手に自分の家の器具を操作できるようでは困りますので、そのデバイスのスキルを使用するにあたってユーザ認証をパスする必要があります。これはスマートホームデバイスを購入した人が、その
デバイスのメーカーホームページでユーザ登録をし、そのユーザIDと購入したスマートホームデバイスが結びつけられている事を想定した機能だと思われます。
この仕組みは OAuth 2.0という規格を使用しているので、スキルの作成には OAuth 2.0に関する知識・理解が必要とのことですが、個人で使用するだけのスマートホームスキルを作るだけなら、OAuth 2.0の知識は無くても何とかなってしまいます(それに IRKitには、ユーザ登録や認証をするサーバーはありませんしね)。具体的には、Amazonの認証サービスを利用して、AmazonのユーザID、パスワードで認証をパスできればOKとします。
- スマートホームデバイスを検出する仕組み
スマートホームスキルを使用するにあたって、ユーザ認証をパスした人が操作できるスマートホームデバイスを検出する
仕組みが必要になります。
これも個人で使用するだけのスマートホームスキルなら、無条件に自分のIRKitを検出したデバイスとして返してやれば良いですね。
4.3 Amazonでログイン(Login With Amazon)のプロファイルを作成する
スキルの認証機能として利用する OAuth 2.0プロバイダーとしてAmazonの認証サービス「Amazonでログイン(Login With Amazon)」を使用します。詳しい説明が
Alexaスキル開発トレーニングシリーズの「第5回 アカウントリンクとホームカード機能」にありますので、一読しておくことをお勧めします。
以下の手順で、Amazonでログイン(Login With Amazon)のプロファイルを作成します。
- Amazon開発者コンソールにサインインします。
- 「アプリ&サービス」の「Amazonでログイン」をクリック
- 「Create a New Security Profile」ボタンをクリック
- 以下を入力します。
- Security Profile Name
- Profile名(ここでは
"smart-IRKit-skill" とでもしておきましょうか)
- Security Profile Description
- Profileの詳細情報("Authentication for IRKit smart home skill"とか何でも)
- Consent Privacy Notice URL
- まぁ自分のホームページのURLでも入れておけば良いかな
- Consent Logo Image
- 認証の際、ロゴとして使う画像をアップロードできるようですが、面倒なら無しでも構いません(実際、この画像が表示されたのを見たことがありません)。
入力したら「Save」ボタンをクリックします。
- Profileが作成されたら、OAuth2 Credentialsの「Show Client ID and Client Secret」をクリック
- Client ID と Client Secret が表示されるので、これをコピーして控えておきます
[続く]
|