ASK CLIでマルチ機能スキル(MCS)にアップグレードする



ASK CLIでマルチ機能スキル(MCS)にアップグレードする

スキルマニフェストはスキルをJSONで表したものであり、Alexaに必要なメタデータをすべて提供しています。対話モデルとアカウントリンクのスキーマは、別に提供されます。詳細については、スマートホームスキルにカスタムの音声対話を追加するを参照してください。

Alexa Skills Kitコマンドラインインターフェイス(ASL CLI)の詳細については、Alexa Skills KitコマンドラインインターフェースとAlexaスキル管理APIの概要を参照してください。

スキルマニフェストの詳細については、スキル管理APIを参照してください。

ASK CLIで複数モデルを使ったスキルの更新や作成を行う方法

以下のセクションでは、既存のスキルを組み合わせる方法や、スマートホームスキルの機能をカスタムスキルに組み合わせて新しいスキルを作成する方法について説明します。

ASK CLIで既存のスキルにスマートホームやカスタム機能を追加する

マージするスマートホームスキルやカスタムスキルが既にある場合は、カスタムスキルのマニフェスト情報を含めるようにスマートホームスキルのマニフェストを変更します。

既存のスキルにスマートホームやカスタム機能を追加する

  1. 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スキルの一覧にも表示されます。

  2. 次のコマンドを入力してスマートホームスキルスキーマを取得し、スキーマを「my-sh-skill.json」という新しいファイルに保存します。

    ask api get-skill -s [スマートホームスキルのID] > my-sh-skill.json

  3. カスタムスキルについてもget-skillコマンドを実行し、スキルマニフェストを別の新しいファイル「my-custom-skill.json」に保存します。

    ask api get-skill -s [カスタムスキルのID] > my-custom-skill.json

  4. スキルマニフェスト(この例ではmy-sh-skill.json)を編集して、スマートホームとカスタム両方のapisエントリーを追加します。手順については、このスキルマニフェストサンプルを参照してください。

  5. スマートホームスキルにカスタムスキルを追加して更新し、変更したJSONファイルをアップロードします。

    ask api update-skill -s [スマートホームスキルのID] -f my-sh-skill.json

    これで、スキルマニフェストが更新されました。

  6. 更新したスキルのスキルマニフェストをダウンロードして更新を確認し、組み合わせたマニフェストを新しい.jsonファイル「my-skill-multi.json」に出力します。

    ask api get-skill -s [スキルID] > my-skill-multi.json

    元のスキルマニフェストに対する変更が、この新しいスキルマニフェストファイルに表示されます。

スキルでは、スマートホームとカスタムの両方のリクエストを処理するコードを提供してください。また、組み合わせたスキルの対話モデルとアカウントリンクのスキーマを管理する必要もあります。詳細については、Alexaから送信されたリクエストを処理するスマートホームスキルの作成手順を参照してください。

ASK CLIでスマートホームとカスタムの機能を含む新しいスキルを作成する

既存スキルの更新だけでなく、スマートホームとカスタムの機能を含む新しいスキルを作成することもできます。

スマートホームとカスタムの機能を含む新しいスキルを作成する

  1. 新しいスキルを作成するには、コマンドプロンプトウを開き、ASK CLIコマンドを実行します。以下はASK CLI(v1)の例です。

    ask new

  2. プロンプトが出たら、My-Smart-Home-Custom-Skillのように新しいスキルの名前を入力します。

    ASK CLIは、指定したスキル名で新しいディレクトリを作成します。このディレクトリには、スキルプロジェクト用のファイルが含まれています。

  3. スキルマニフェストを編集して、必要なスマートホームとカスタムのコンポーネントを追加します。

  4. スキルプロジェクト内の対話モデルとアカウントリンクのスキーマを編集し、このスキルの内容と一致させます。

  5. 次のコマンドでスキルを更新します。スキルのスキーマに使ったファイル名を指定します。

    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-USen-GBja-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

次のいずれかの組み合わせを含む権限の配列です。

  • alexa::devices:all:address:full:read(Alexaアプリの設定からユーザーの完全な住所を読み込みます)
  • alexa::devices:all:address:country_and_postal_code:read(Alexaアプリの設定から入力された、ユーザーの居住国と郵便番号を読み込みます)
  • alexa::household:lists:read(ユーザーのAlexaリストを読み込みます)
  • alexa::household:lists:write(ユーザーのAlexaリストに書き込みます)
配列

apisオブジェクト

フィールド 説明
apis apiの種類オブジェクトの配列です。apiの種類オブジェクトの組み合わせには、一部サポートされていないものもあります。 配列
apis.api-type customsmartHomevideoを含みます。 列挙
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文字のコードです。例:NAFE 列挙
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_PLAYERVIDEO_APPRENDER_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文字のコードです。例:NAFEEU 列挙
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