ASK CLIでマルチ機能スキル(MCS)にアップグレードする
スキルマニフェストはスキルをJSONで表したものであり、Alexaに必要なメタデータをすべて提供しています。対話モデルとアカウントリンクのスキーマは、別に提供されます。詳細については、スマートホームスキルにカスタムの音声対話を追加するを参照してください。
Alexa Skills Kitコマンドラインインターフェイス(ASL CLI)の詳細については、Alexa Skills KitコマンドラインインターフェースとAlexaスキル管理APIの概要を参照してください。
スキルマニフェストの詳細については、スキル管理APIを参照してください。
ASK CLIで複数モデルを使ったスキルの更新や作成を行う方法
以下のセクションでは、既存のスキルを組み合わせる方法や、スマートホームスキルの機能をカスタムスキルに組み合わせて新しいスキルを作成する方法について説明します。
ASK CLIで既存のスキルにスマートホームやカスタム機能を追加する
マージするスマートホームスキルやカスタムスキルが既にある場合は、カスタムスキルのマニフェスト情報を含めるようにスマートホームスキルのマニフェストを変更します。
既存のスキルにスマートホームやカスタム機能を追加する
-
ASK CLIをインストールし、必要に応じてAWSユーザーアカウントをセットアップし、ASK CLIを初期化します。この手順については、クイックスタート:Alexa Skills Kitコマンドラインインターフェース(ASK CLI)を参照してください。
コマンドプロンプトを開き、ASK CLIコマンドを実行します。以下はASK CLI(v1)の例です。
ask api list-skills
Amazon開発者アカウントのすべてのスキルのリストを出力します。リストをスクロールし、変更するスマートホームスキルのスキルIDと、スマートホームスキルに追加するカスタムスキルのスキルIDの両方を探します。これらのスキルIDは、Alexa Skills Kit開発者コンソールのAlexaスキルの一覧にも表示されます。
-
次のコマンドを入力してスマートホームスキルスキーマを取得し、スキーマを「my-sh-skill.json」という新しいファイルに保存します。
ask api get-skill -s [スマートホームスキルのID] > my-sh-skill.json
-
カスタムスキルについても
get-skill
コマンドを実行し、スキルマニフェストを別の新しいファイル「my-custom-skill.json」に保存します。ask api get-skill -s [カスタムスキルのID] > my-custom-skill.json
-
スキルマニフェスト(この例では
my-sh-skill.json
)を編集して、スマートホームとカスタム両方のapis
エントリーを追加します。手順については、このスキルマニフェストサンプルを参照してください。 -
スマートホームスキルにカスタムスキルを追加して更新し、変更したJSONファイルをアップロードします。
ask api update-skill -s [スマートホームスキルのID] -f my-sh-skill.json
これで、スキルマニフェストが更新されました。
-
更新したスキルのスキルマニフェストをダウンロードして更新を確認し、組み合わせたマニフェストを新しい.jsonファイル「my-skill-multi.json」に出力します。
ask api get-skill -s [スキルID] > my-skill-multi.json
元のスキルマニフェストに対する変更が、この新しいスキルマニフェストファイルに表示されます。
スキルでは、スマートホームとカスタムの両方のリクエストを処理するコードを提供してください。また、組み合わせたスキルの対話モデルとアカウントリンクのスキーマを管理する必要もあります。詳細については、Alexaから送信されたリクエストを処理するとスマートホームスキルの作成手順を参照してください。
ASK CLIでスマートホームとカスタムの機能を含む新しいスキルを作成する
既存スキルの更新だけでなく、スマートホームとカスタムの機能を含む新しいスキルを作成することもできます。
スマートホームとカスタムの機能を含む新しいスキルを作成する
-
新しいスキルを作成するには、コマンドプロンプトウを開き、ASK CLIコマンドを実行します。以下はASK CLI(v1)の例です。
ask new
-
プロンプトが出たら、
My-Smart-Home-Custom-Skill
のように新しいスキルの名前を入力します。ASK CLIは、指定したスキル名で新しいディレクトリを作成します。このディレクトリには、スキルプロジェクト用のファイルが含まれています。
-
スキルマニフェストを編集して、必要なスマートホームとカスタムのコンポーネントを追加します。
-
スキルプロジェクト内の対話モデルとアカウントリンクのスキーマを編集し、このスキルの内容と一致させます。
-
次のコマンドでスキルを更新します。スキルのスキーマに使ったファイル名を指定します。
ask api update-skill -s [スキルID] -f my-skill.json
スキルマニフェストのサンプル
スキルタイプに応じたスキルマニフェストを選択します。各スキルタイプについて、プライバシーとコンプライアンス要件に従います。
スマートホームとカスタムモデルの両方を組み合わせたスキルを作成する場合は、endpoint
フィールドにスキルタイプごとにARN(Amazonリソースネーム)を指定する必要があります。また、スキルマニフェストには、スマートホームとカスタム部分の両方に必要なすべてのオブジェクトを含める必要があります。新しいスキルに必須のオブジェクトのみを使用します。
スマートホームとカスタムを組み合わせたスキルマニフェスト
{
"manifest": {
"manifestVersion": "1.0",
"publishingInformation": {
"locales": {
"ja-JP": {
"name": "サンプルのスキル名です。",
"summary": "これはAlexaスキルのサンプルです。",
"description": "このスキルは基本および高度なスマートデバイス管理機能を提供します。",
"smallIconUri": "https://smallUri.com",
"largeIconUri": "https://largeUri.com",
"examplePhrases": [
"アレクサ、サンプルスキルを開いて",
"アレクサ、キッチンのライトをつけて"
],
"keywords": [
"スマートホーム",
"ライト",
"スマートデバイス"
]
}
},
"distributionCountries": [
"JP"
],
"isAvailableWorldwide": false,
"testingInstructions": "1) 'アレクサ、サンプルのライトをオンにして'と言う",
"category": "SMART_HOME"
},
"privacyAndCompliance": {
"allowsPurchases": false,
"usesPersonalInfo": false,
"isChildDirected": false,
"isExportCompliant": true,
"containsAds": false,
"locales": {
"ja-JP": {
"privacyPolicyUrl": "http://www.myprivacypolicy.sampleskill.com",
"termsOfUseUrl": "http://www.termsofuse.sampleskill.com"
}
}
},
"apis": {
"smartHome": {
"endpoint": {
"uri": "arn:aws:lambda:us-west-2:040623927470:function:sampleSkill"
},
"regions": {
"FE": {
"endpoint": {
"uri": "arn:aws:lambda:us-west-2:010623927470:function:sampleSkillWest"
}
}
}
},
"custom": {
"endpoint": {
"uri": "arn:aws:lambda:ap-northeast-1:040623927470:function:sampleSkill"
},
"regions": {
"FE": {
"endpoint": {
"sslCertificateType": "Trusted",
"uri": "https://customapi.sampleskill.com"
}
}
}
}
}
}
}
publishingInformationオブジェクト
フィールド | 説明 | 型 |
---|---|---|
distributionCountries | 配信する国や地域の文字列を指定する配列をISO 3166-1 alpha-2形式で表したものです(JP、US、GB、DEなど)。availableWorldwide がfalseの場合のみ、値が入ります。 |
文字列の配列 |
isAvailableWorldwide | 世界中でスキルが利用できる場合はtrue 、それ以外はfalseです。falseの場合、対象の国をdistributionCountries のリストに追加します。 |
ブール値 |
testingInstructions | テストアカウントなど、スキルの特別なテスト手順の説明です。 | 文字列 |
category | NEWSやSMART_HOMEなど、Alexaアプリでのスキルのフィルターカテゴリーを示します。スマートホームを含むモデルの組み合わせはすべて、SMART_HOMEカテゴリーを使用する必要があります。詳細については、 カテゴリ列挙を参照してください。 | 文字列 |
locales | サポート対象ロケールのlocaleオブジェクトを含むオブジェクトです。 | オブジェクト |
locales.locale | ロケール文字列です。サポート対象ロケールには、そのロケールに該当する文字列を指定したオブジェクトが含まれます。例:en-US 、en-GB 、ja-JP など |
オブジェクト |
locales.locale.summary | スキルのリストに表示されるスキルの要約です。 | 文字列 |
locales.locale.description | スキルの主な機能や使用の前提条件(追加のハードウェア、ソフトウェア、アカウントなど)の詳細な説明です。フラッシュブリーフィングスキルの場合、スキルのフィードを表示できなければなりません。 | 文字列 |
locales.locale.smallIconUri | スキルリストに表示されるスキルの小さいアイコンへのURLです(108x108px)。 | 文字列 |
locales.locale.largeIconUri | スキルの大きいアイコンへのURLです(512x512px)。 | 文字列 |
locales.locale.examplePhrases | どのようにスキルを呼び出せるかを示す、3つのサンプルフレーズです。精度を高めるため、スキルのサンプル発話をそのまま使用する必要があります。 | 文字列の配列 |
locales.locale.keywords | スキルを説明するキーワードとなるフレーズです。 | 文字列の配列 |
privacyAndComplianceオブジェクト
フィールド | 説明 | 型 |
---|---|---|
allowsPurchases | ユーザーがこのスキルから購入できるようにする場合はtrue 、それ以外はfalse です。 |
ブール値 |
usesPersonalInfo | このスキルがユーザー情報を使用する場合はtrue 、それ以外はfalse です。 |
ブール値 |
isChildDirected | 13歳未満(米国)、または16歳未満(EUおよび日本)の子ども向けのスキルの場合はtrue 、それ以外はfalse です。 |
ブール値 |
isExportCompliant | ユーザーがスキルをどの国/リージョンにも輸出できる場合はtrue 、それ以外はfalse です。 |
ブール値 |
locales | サポート対象ロケールのプライバシーと利用規約のURLを含む、localeオブジェクトです。 | オブジェクト |
locales.locale | ロケール文字列です。サポート対象ロケールには、そのロケールに該当する文字列を指定したオブジェクトが含まれます。例:en-US、en-GB、ja-JPなど | オブジェクト |
locales.locale.privacyPolicyUrl | そのロケールのスキルのプライバシーポリシーへのURLです。 | 文字列 |
locales.locale.termsOfUseUrl | そのロケールのスキルの利用規約へのURLです。 | 文字列 |
スキルマニフェストを使用してスキルを作成または変更する場合、ユーザーがプライバシーとコンプライアンスの要件および輸出コンプライアンスの要件を満たしていることを確認してください。ユーザーの要件は、Amazon開発者ポータルでスキルを作成する場合のユーザー要件と同じです。これらの要件は、ポータルでスキルを作成するときにプライバシーとコンプライアンスタブに表示されます。
privacyAndCompliance
オブジェクトに値をセットするには、すべての質問に回答する必要があります。ユーザーの回答がYes
の場合、値をtrue
に設定します。No
の場合、値をfalse
に設定します。開発者がユーザーに代わってデフォルトの回答や値を設定しないでください。
フィールド | Amazon開発者ポータルで該当する質問 |
---|---|
allowsPurchases | このスキルを使って何かを購入したり、実際にお金を支払うことができますか? |
usesPersonalInfo | このAlexaスキルはユーザーの個人情報を収集しますか? 氏名、メールアドレス、パスワード、電話番号、誕生日など、ユーザーを特定できる情報が含まれます。 |
isChildDirected |
このスキルは米国向けの場合は13歳未満、EUまたは日本向けの場合は16歳未満のお子様を対象としていますか? 該当する場合は、Children’s Online Privacy Protection Act (COPPA)に従って明示してください。 不明な点がある場合は、 |
isExportCompliant | チェックボックス: このAlexaスキルは、AmazonがAmazonのプログラムを取引している、または開発者がエンドユーザーに対して販売することが認められている米国およびその他の国・地域において、特定のライセンスや認可の取得、その他の手続き等を必要なく輸出入することができ、暗号化技術を利用したソフトウェアに適用されるものを含む、輸出入に関するすべてにおいて適用される法規制に完全に準拠していることを証明いたします。 |
containsAds | このスキルで広告は表示されますか? |
privacyPolicyUrl | プライバシーポリシーURL(オプション)このスキルに適用するプライバシーポリシーへのリンク 注: 指定する場合は、ロケールごとに個別のプライバシーポリシーURLが必要です。 |
termsOfUse
| 利用規約URL(オプション)このスキルの利用規約文書へのリンク 注: 指定する場合は、ロケールごとに個別の利用規約URLが必要です。 |
permissionsオブジェクト
スキルの名前付き権限の配列です。
フィールド | 説明 | 型 |
---|---|---|
name |
次のいずれかの組み合わせを含む権限の配列です。
|
配列 |
apisオブジェクト
フィールド | 説明 | 型 |
---|---|---|
apis | apiの種類オブジェクトの配列です。apiの種類オブジェクトの組み合わせには、一部サポートされていないものもあります。 | 配列 |
apis.api-type | custom 、smartHome 、video を含みます。 |
列挙 |
apis.api-type.endpoint | uri フィールドを含みます。 |
オブジェクト |
apis.api-type.endpoint.uri | スキルのカスタムLambda関数またはHTTPS URLのAmazonリソースネームです(ARN)。 | 文字列 |
apis.api-type.regions | サポートされるregionオブジェクトの配列を含みます。 | 配列 |
apis.api-type.regions.region | 地理的なリージョンを示す2文字のコードです。例:NA 、FE |
列挙 |
apis.api-type.regions.region.endpoint | uri およびsslCertificate フィールドが含まれます。 |
オブジェクト |
apis.api-type.regions.region.endpoint.uri | スキルのカスタムLambda関数またはHTTPS URLのAmazonリソースネームです(ARN)。 | 文字列 |
apis.api-type.regions.region.endpoint.sslCertificateType | スキルのHTTPSエンドポイントのSSL証明書タイプです。有効な値はTrusted またはWildcard です。AWS Lambda ARNではなく、HTTPSエンドポイントでのみ有効です。 |
列挙 |
apis.api-type.interfaces | スキルがサポートするインターフェースの配列です。 | 配列 |
apis.api-type.interfaces.type | AUDIO_PLAYER 、VIDEO_APP 、RENDER_TEMPLATE を含みます。 |
列挙 |
apis.api.smartHome | スキルのスマートホーム設定を含みます。 | オブジェクト |
apis.api.smartHome.endpoint | uri フィールドを含みます。 |
オブジェクト |
apis.api.smartHome.endpoint.uri | スキルのsmartHome Lambda関数またはHTTPS URLのAmazonリソースネーム(ARN)です。 | 文字列 |
apis.api.smartHome.regions | サポートされるregionオブジェクトの配列を含みます。 | 配列 |
apis.api.smartHome.regions.region | 地理的なリージョンを示す2文字のコードです。例:NA 、FE 、EU |
列挙 |
apis.api.smartHome.regions.region.endpoint | uri フィールドを含みます。 |
オブジェクト |
apis.api.smartHome.regions.region.endpoint.uri | スキルのスマートホームLambda関数またはHTTPS URLのAmazonリソースネーム(ARN)です。 | 文字列 |
apis.api.smartHome.regions.region.endpoint.sslCertificateType | スキルのHTTPSエンドポイントのSSL証明書タイプです。有効な値は、Trusted またはWildcard です。AWS Lambda ARNではなく、HTTPSエンドポイントでのみ有効です。 |
列挙 |
apis.api.smartHome.protocolVersion | (オプション)スマートホームAPIのバージョンです。デフォルトで推奨値は「3」です。バージョン「3」への移行テストを行うために、バージョン「2」のスキルを作成することもできますが、バージョン「2」を使用したスキルを申請しても認定されません。 | 文字列 |
Category列挙の値です。
この列挙値は、カテゴリーです。カテゴリーは、Alexaアプリに表示されるスキルのフィルタリングに使用されます。スマートホームモデルを含むすべてのスキルのカテゴリー列挙値は、SMART_HOMEである必要があります。
列挙値 |
---|
ALARMS_AND_CLOCKS |
ASTROLOGY |
BUSINESS_AND_FINANCE |
CALCULATORS |
CALENDARS_AND_REMINDERS |
COMMUNICATION |
CONNECTED_CAR |
COOKING_AND_RECIPE |
CURRENCY_GUIDES_AND_CONVERTERS |
DATING |
DELIVERY_AND_TAKEOUT |
DEVICE_TRACKING |
EDUCATION_AND_REFERENCE |
EVENT_FINDERS |
EXERCISE_AND_WORKOUT |
FASHION_AND_STYLE |
FLIGHT_FINDERS |
FRIENDS_AND_FAMILY |
GAME_INFO_AND_ACCESSORY |
GAMES |
HEALTH_AND_FITNESS |
HOTEL_FINDERS |
KNOWLEDGE_AND_TRIVIA |
MOVIE_AND_TV_KNOWLEDGE_AND_TRIVIA |
MOVIE_INFO_AND_REVIEWS |
MOVIE_SHOWTIMES |
MUSIC_AND_AUDIO_ACCESSORIES |
MUSIC_AND_AUDIO_KNOWLEDGE_AND_TRIVIA |
MUSIC_INFO_REVIEWS_AND_RECOGNITION_SERVICE |
NAVIGATION_AND_TRIP_PLANNER |
NEWS |
NOVELTY |
ORGANIZERS_AND_ASSISTANTS |
PETS_AND_ANIMAL |
PODCAST |
PUBLIC_TRANSPORTATION |
RELIGION_AND_SPIRITUALITY |
RESTAURANT_BOOKING_INFO_AND_REVIEW |
SCHOOLS |
SCORE_KEEPING |
SELF_IMPROVEMENT |
SHOPPING |
SMART_HOME |
SOCIAL_NETWORKING |
SPORTS_GAMES |
SPORTS_NEWS |
STREAMING_SERVICE |
TAXI_AND_RIDESHARING |
TO_DO_LISTS_AND_NOTES |
TRANSLATORS |
TV_GUIDES |
UNIT_CONVERTERS |
WEATHER |
WINE_AND_BEVERAGE |
ZIP_CODE_LOOKUP |