Alexa Smart Propertiesのスキルを管理する
以下のセクションでは、Alexa Smart Propertiesのスキルの管理、有効化、無効化について説明します。
施設用スキルのスキルIDを取得する
スキルが認定されたら、管理者ユーザーには、スキルを有効または無効にするためのスキルIDが必要になります。
施設用スキルのスキルIDを取得するには
- 開発者コンソールでスキルを開きます。
- リストでスキルを見つけ、スキル名の下のスキルIDの表示をクリックします。ポップアップからIDをコピーします。
ユニットに対してスキルを有効または無効にする
施設のユニットに対してスキルを有効または無効にするには、スキル管理APIを使用します。Alexaスキルストアで公開されているスキルを有効にすることができます。また、Alexa Skills Kitを使用して、施設固有のスキルを作成して公開することもできます。
-
1つのユニットに対してスキルを有効にするには、スキルを有効にするAPIを呼び出します。
-
複数のユニットに対してスキルを有効にするには、複数のユニットでスキルを有効にするAPIを呼び出します。
-
1つのユニットに対してスキルを無効にするには、スキルを無効にするAPIを呼び出します。
ユニットでスキルを有効にすると、施設のエンドユーザーがユニットに設置されているエンドポイントでそのスキルを使用できるようになります。
スキル有効化でアカウントリンクとパーティションを使用する
スキル有効化は、ユニットでスキルが有効になっていることを示すレコードです。スキルを有効にするときに、その有効化でスキルにスキルプロバイダーアカウントをリンクすることができます。たとえば、ユニットにスマート電球が設置されていて、それらを制御するスマートホームスキルを開発者(スマートホームスキルプロバイダー)が作成したとします。開発者は、ユニットに対してスキルを有効にするAPI呼び出しで、スキルにスキルプロバイダーアカウントをリンクすることができます。
デリゲートアカウントリンクを使用する方法
デリゲートアカウントリンクでは、スキルプロバイダーアカウントとAmazonビジネスアカウントの関連付けが作成されます。このリンクを設定すると、スキルに対して実行するスキル有効化API呼び出しにアカウントの認証情報がデリゲートされ、呼び出しごとにアカウントの詳細情報を提供する必要がなくなります。
デリゲートアカウントリンクを設定するには
- Amazonビジネスの認証情報を使用してAlexaスキルストアにログインします。これらの認証情報は、スキルプロバイダーとしてAlexa Smart Propertiesに登録したときに使用したものと同じである必要があります。
- Alexaスキルストアで目的のスキルを検索し、そのスキルをAmazonビジネスアカウントで有効にします。これにより、スキルにスキルプロバイダーアカウントがリンクされます。
- アプリで、ユニットに対してスキルを有効にします。そのスキル有効化に、スキルプロバイダーアカウントが自動的にリンクされます。
パーティションを使用してスマートホームスキルのスコープを制限する方法
パーティションを使用すると、ユニット内のスマートホームスキルのスコープを、そのユニットに設置されているスマートデバイスのみに制限することができます。パーティションとは、デバイス、エンドポイント、スキルなどのAlexaリソースの論理グループです。Alexa Smart Propertiesでのパーティションは、多くの場合、ユニットまたはユニットのグループを表します。
パーティション名は、1つのパーティション名を含む文字列、または複数のパーティション名のカンマ区切りリストを含む文字列です。各パーティション名は空でない単一の文字列で、英数字とハイフンを含めることができますが、空白は使用できません。
たとえば、「Room-101」や「Room101, Room202」は有効なパーティション名ですが、「」(空のリスト)、「Room101, ,Room202」(カンマ区切りが正しくない)、「Room 101」(空白を含む)は有効な値ではありません。
たとえば、ある施設に Room101
、Room102
、Room103
、Room104
、Room105
という5つのルームがあるとします。パーティションをサポートするスマートホームスキルをRoom101
で有効にするには、Room101
に対してスキルを有効にするときに、次のようにパーティションを指定する必要があります。
{
"persistentUnitId": "amzn1.alexa.unit.[unique-value-here]",
"stage": "live",
"partitionName": "Room101",
}
パーティションをサポートするAlexaスキルでは、スキル有効化APIの呼び出しにpartitionName
パラメーターを含めることで、施設内のどのパーティションでスキルを有効にするかを指定できます。partitionName
フィールドを使用すると、施設を個々のユニットにパーティション化し、指定したパーティションのスコープ内でスキルを動作させることができます。
ユニットでのスキル有効化と、そのユニットに設置されたAlexaデバイスのスマートホームスキルサービスで同じpartitionName
を指定すると、エンドユーザーがそのユニットのAlexaデバイスからスマートホームスキルを呼び出したときに、そのユニット内のスマートホームデバイスのみがスキルで認識されます。ペイロード内でパーティションがどのように表されるかについては、Scopeオブジェクトのドキュメントを参照してください。
スキル有効化でパーティションを使用するには
- デリゲートアカウントリンクを設定して、スキルプロバイダーアカウントをAmazonビジネスアカウントにリンクします。
- スキルプロバイダーサービスを使用して、各ユニットのスマートデバイスをセットアップします。それぞれの呼び出しでユニットのパーティション名を渡します。
- ユニットごとにスキルを有効にします。それぞれの呼び出しでユニットの
partitionName
を渡します。このパーティション名は、スキルプロバイダーサービスでユニットのスマートデバイスをセットアップしたときと同じものを使用します。
スキルリクエストに対してユニット固有の応答を返す
永続ユニットIDを使用する
スキルに送信されたリクエストのエンドポイントに関連付けられたソースユニットを識別するために、永続ユニットIDを有効にすることができます。スキルでは、ユニットIDを使用してユニット固有の応答を提供することができます。詳細については、カスタムスキルのJSONインターフェースのリファレンスで、System
オブジェクトのunit
フィールドを参照してください。スキルを許可リストに登録して永続ユニットIDを有効にするには、施設用スキルの機能と権限を有効にするを参照してください。
永続エンドポイントIDを使用する
スキルへのリクエストに、そのスキルリクエストの送信元デバイスのエンドポイントIDが含まれるようになりました。この機能は開発者アカウントに結び付けられます。つまり、この機能が有効になっている同じ開発者アカウントでエンドポイントIDにアクセスすれば、それらのIDは常に同じ値になります。
スキルがリクエストを受け取ったら、リクエストのcontext.System.device
オブジェクトのpersistentEndpointId
フィールドを調べます。詳細については、Systemオブジェクトを参照してください。
関連トピック
最終更新日: 2023 年 11 月 30 日