スマートホームスキルの作成手順

スマートホームスキルの作成手順

スマートホームスキルを作成するときは、Alexaがスキルを呼び出し、ユーザーのリクエストに対応してスマートホームデバイスを制御できるようにします。スマートホームスキルでは、プリビルドの音声対話モデルを使用します。発話セットはAlexaによって定義されます。Alexaスマートホームスキルは、ほとんどのデバイスタイプに対して作成できます。

スマートホームスキルの概要については、スマートホームスキルを理解するを参照してください。簡単なスマートホームスキルを作成するステップバイステップのチュートリアルについては、チュートリアル:スマートホームスキルの作成を参照してください。

スマートホームスキルを作成するには、以下の手順を実行します。

前提条件

スマートホームスキルを開発する際に必要なものは以下のとおりです。

  • Amazon開発者アカウント。日本語のスキルを開発してテストするには、Amazon.co.jpのアカウントを使用します。作成済みでない場合は、Amazon.co.jpにアクセスして新しいアカウントを作成してください。アカウントは無料です。
  • アマゾン ウェブ サービス(AWS)アカウント。AWSアカウントを使用すると、サービスの無料利用枠の一部としてリソースにアクセスできます。スキルコードはAWS Lambdaでホストします。
  • デバイス制御クラウドに接続するスマートデバイス(照明、サーモスタット、カメラ、ロックなど)。スキルは、デバイスでサポートされている通信チャネルを使用して、デバイスまたはデバイス制御クラウドと通信します。
  • Alexa搭載デバイス(Amazon Echoなど)。Echoへのサインインには、Alexa開発者アカウントと同じ認証情報を使用してください。
  • モバイルデバイスにインストールしたAmazon Alexaアプリ。Alexaアプリのダウンロード手順については、AmazonウェブサイトのAlexaアプリをダウンロードするを参照してください。モバイルデバイス上のAlexaアプリへのサインインには、Alexa開発者アカウントと同じ認証情報を使用してください。
  • JSONと、AWS Lambdaスキルコードでサポートされるプログラミング言語(Node.js、Java、Python、C#、Go、Ruby、PowerShellのいずれか)に関する知識。
  • アカウントリンクのためのOAuth 2.0プロバイダー。Amazon認可サーバーのLogin with Amazon(LWA)を使用するか、独自のOAuth 2.0プロバイダーを選択できます。
  • デバイスとやり取りし、ユーザーをデバイスに関連付けることができるデバイス制御クラウド。AWS IoT または独自のクラウドプロバイダーを使用できます。
  • スマートホームデバイスを制御するディレクティブを定義する、適切なスマートホームスキルAPI。スマートホームスキルAPIでサポートされるロケールと言語については、Alexaインターフェースとサポートしている言語の一覧を参照してください。
  • スキルの認定要件であるポリシーセキュリティに関する知識。

スマートホームスキルの作成手順

スマートホームスキルを作成するには、次の手順を実行します。

  1. スマートホームスキルを作成します。
  2. スキルコードを実装します。
  3. アカウントリンクを設定します。
  4. スキルをテストします。
  5. 公開情報を追加します。
  6. スキルのベータテスト(任意)を行います。
  7. スキルの認定を申請します。

ステップ1:スマートホームスキルを作成する

スマートホームスキルは、Alexa開発者コンソールで作成します。スキルに追加するモデルは、スマートホームモデルを選択します。

デフォルトの言語とリージョンとして日本語(日本)を選択することも、ほかの言語とリージョンでスキルを作成することもできます。スキルを提供する予定のリージョンを選択してください。スキルは複数の言語で作成できます。詳細については、スマートホームスキルを複数の言語で開発するを参照してください。サポートされる言語はインターフェースによって異なります。詳細については、Alexaインターフェースとサポートしている言語の一覧を参照してください。

スキルを作成したら、スキルIDを参照しやすい場所にコピーしておきます。Windowsではメモ帳、Macではテキストエディットなどを使用できます。スキルIDは、Lambdaでホストされるスキルコードにスキルを接続するために必要になります。

ステップ2:スキルコードを実装する

スマートホームスキルのコードは、アマゾン ウェブ サービス(AWS)のLambda関数として実装します。詳細については、スマートホームスキルのコードを実装するを参照してください。必要に応じて、スキルに追加機能を実装できます。

スキルコードの例

次のスマートホームスキルのコード例では、電球を制御しています。

ステップ3:アカウントリンクを設定する

すべてのスマートホームスキルでは、アカウントリンクを有効にして、AlexaユーザーのIDをシステムのユーザーIDに関連付ける必要があります。たとえば、電球のシステムに、電球のモデルと機能(調光式かどうかなど)を格納するユーザーアカウントがあるとします。ユーザーがAlexaアプリでスキルを有効にすると、Alexaはアカウントリンクプロセスを開始し、システムからアクセストークンを受け取ります。その後、ユーザーがAlexaに電球を暗くするように指示すると、Alexaはスキルにアクセストークンを送信します。このトークンを使用することで、スキルはシステムのユーザーアカウントにアクセスして、電球が調光式かどうかを確認できます。

Alexaは、スマートホームスキルとビデオスキルにOAuth 2.0 Authorization code grant種別を使用します。アカウントリンクを設定するには、OAuthプロバイダーから以下の情報を取得する必要があります。これらのフィールドの詳細については、Authorization code grantを設定するを参照してください。

  • 認可サーバーのログインページのURI - ユーザーがAlexaアプリでスキルを有効にすると、AlexaはこのURIにユーザーをリダイレクトして、ログイン認証情報の入力を求めます。ログインに成功すると、サーバーからAlexaに認可コードが返されます。
  • アクセストークンサーバーのURI - 認可コードをアクセストークンに交換できる、認可サーバーのエンドポイントです。
  • クライアントID - スキルを識別する一意の文字列です。スキルは、Alexaユーザーに代わってリソースサーバーにリクエストを送信します。
  • クライアントシークレット - Alexaは、クライアントIDとクライアントシークレットを使用して、アクセストークンURIで認証を行います。これらの認証情報によってAlexaからのリクエストが識別されます。
  • 認証スキーム - Alexaがアクセストークンサーバーからアクセストークンと更新トークンをリクエストするために使用する、認証の種類を識別します。
  • スコープ - (オプション)ユーザーIDやパスワードなど、スキルユーザーに要求する認証情報のリストです。最大15個まで指定できます。
  • ドメイン - (オプション)認可サーバーがコンテンツをリクエストするドメインのリストです。最大30個まで指定できます。
  • デフォルトのアクセストークンの有効期限 - (オプション)サーバーがメッセージにアクセストークンの有効期限を指定しない場合は、アクセストークンの有効期間を示す秒数を提供する必要があります。

スキルの認可サーバーとセキュリティプロファイルの設定は、Alexa開発者コンソールで行います。スマートホームページで、左側のメニューからアカウントリンクをクリックします。必要な情報を入力し、保存をクリックします。Alexaのリダイレクト先のURLフィールドには、Alexaが使用するリダイレクト先のエンドポイントが表示されます。これらのリダイレクト先URLを認可サーバーに登録する必要があります。

Amazon OAuth認可サーバーのLogin with Amazon(LWA)を使用することも、独自のOAuth 2.0プロバイダーを使用することもできます。LWA認可サーバーとのアカウントリンクを設定する方法の詳細については、スマートホームチュートリアルのステップ4:アカウントリンクを設定するを参照してください。

ステップ4:スキルをテストする

スキルコードの開発中、Lambdaコンソールでテストケースを作成して、Alexaからのリクエストをテストできます。詳細については、スマートホームチュートリアル:ステップ2e:Lambda関数をテストするを参照してください。

実装が完了したら、スキルを有効にしてテストを開始できます。

スキルを有効にしてテストを開始するには

  1. Alexaアプリでスキルを有効にします。Alexaはアカウントリンクを実行し、スキルにAlexa.Authorization.AcceptGrantを送信して、スキルをユーザーのAmazonアカウントに接続します。次に、Alexa.Discoverリクエストをスキルに送信してデバイスを検出します。
  2. スキルが正常にデバイスを検出したら、開発者コンソールでスキルをテスト用に有効にする手順を完了します。
  3. 開発者コンソールのテストタブで、Alexaシミュレーターを使用してスキルをテストします。
    検出応答とAlexaアプリで確認できるフレンドリ名を使用して、Alexaにコマンドを伝えます。スキルがサポートしているデバイス機能に固有の発話を使用してください。また、有効な発話と無効な発話の両方でスキルをテストしてください。変更レポートとエンドポイントの正常性を確認するには、デバイスの電源をオフにしてからもう一度オンにします。

スキルコードを繰り返し実行し、テストを続けることができます。アカウントリンクの設定を変更する場合は、Alexaアプリでスキルを無効にしてから再度有効にして、変更後の設定をテストします。検出応答のコードを変更する場合も、Alexaアプリでスキルを無効にしてから再度有効にしてください。スキルのテストとデバッグのオプションについては、スマートホームスキルのデバッグを参照してください。

スキルが完成したら、スキルの公開情報を指定できます。

ステップ5:公開情報を追加する

スキルをAmazon Alexaスキルストアに公開するには、開発者コンソールの公開タブで、スキルに必要なメタデータを入力する必要があります。

スキル情報を入力して保存したら、スキルをベータテスト用に公開するか、認定の申請をすることができます。詳細については、スマートホームスキル公開のガイドを参照してください。

ステップ6:スキルのベータテストを行う(任意)

必要に応じて、スキルのベータテストをセットアップできます。ベータテストでは一般公開はせず、個人的に選択した限定的なテストグループにスキルを公開します。詳細については、スキルのベータテストを参照してください。

ステップ7:スキルの認定を申請する

スキルを公開する準備が整ったら、認定の申請をします。スキルの認定の詳細については、スキルをテストして認定を申請するを参照してください。

スキルの認定を申請するには

  1. 開発者コンソールの認定ページで、検証テストを実行します。これらのテストにより、スキルの認定を申請する前に修正する必要のある問題を特定できます。
  2. スキルがAlexaのポリシーガイドラインを満たしていることを確認します。これらのガイドラインは、スキルがあらゆるユーザーに適していることを確認するために役立ちます。これらのガイドラインに従うことで、Alexaユーザーのプライバシーと公益を守ることができます。
  3. スキルがAlexaのセキュリティ要件を満たしていることを確認します。ユーザーからの信頼は非常に重要です。ユーザーデータを保護するために、スキルはこれらのセキュリティ要件を満たしている必要があります。
  4. スキルを公開する準備が整い、スキルがポリシーとセキュリティ要件を満たしていることが確認できたら、スキルの認定を申請します。

スキルに追加機能を実装する

デバイスが在庫センサーをサポートしている場合は、スマートホームデバイスにAmazon Dash replenishmentサービスを追加して、Alexaでデバイスの消耗品や交換部品の監視と再注文を行うことができます。詳しくは、Dash Replenishmentについてを参照してください。

公開後にスキルの修正やアップデートを行う

Amazonでスキルがエンドユーザーに公開されると、スキルステータスが「公開中」になり、新しい「開発中」のバージョンが自動的に開発者コンソールに作成されます。このバージョンには、元の公開中のバージョンと同じ情報が登録されています。スキル設定やLambda関数に変更を加えた場合は、そのつど認定を受ける必要があります。更新したスキルを申請するときは、開発者コンソールのテストの手順に、すべての変更について詳細に説明した変更ログを追加します。詳細については、公開後にスキルの修正やアップデートを行うを参照してください。

Lambda関数を変更するには

  1. 新しいLambda関数と新しいARNを作成します。
  2. 公開中のLambda関数のスキルコードを、新しいLambda関数にコピーします。
  3. 新しいLambda関数でスキルコードを更新します。
  4. スキルの開発段階で、Lambda ARNの設定を更新して、新しいLambda関数のARNを指すようにします。

更新されたスキルがAmazonで認定されると、Alexaは新しいLambda ARNにリクエストを送信します。前のLambda関数は削除することも、将来の開発や更新のために使用することもできます。