リストスキルの作成手順

リストスキルの作成手順

リストスキルは、カスタム音声対話モデルを選択して作成することも、対話モデルなしで作成することもできます。スキルマニフェストを更新し、リストとスキルのイベントを有効にする適切な設定を追加します。

前提条件

ASK CLIクイックスタートに沿ってASK CLIをインストールします。

リストスキルは、カスタム音声対話モデルを使って作成することも、対話モデルなしで作成することもできます。カスタムスキルの詳細については、カスタムスキルとはを参照してください。開発者コンソールまたはCLIを使ってスキルを作成できます。CLIを使ってスキルを作成する方法について詳しくは、新しいスキルプロジェクトを作成するを参照してください。

リストスキルを作成する

リストスキルを作成するには、スキルマニフェストを編集して適切なapisオブジェクト、permissionsオブジェクト、eventsオブジェクトを追加します。

次の手順でskill.jsonファイルを編集します。

  1. リストイベントを実行するには、apisオブジェクトにhouseholdListを追加します。
    スキルマニフェストは、apisオブジェクトにあるhouseholdListを持つスキルマニフェストか、apisオブジェクトに追加のhouseholdListフィールドを持つカスタムスキルマニフェストのいずれかです。詳細については、リストスキルのマニフェストの例を参照してください。
  2. ユーザーに対して適切な権限を付与するプロンプトを出すようスキルをセットアップすると、スキルサービスがこれらのイベントを参照できるようになります。permissionsオブジェクトを追加します。permissionsオブジェクトを使用して、Alexaリストの読み込みまたは書き込み権限の許可をユーザーに求めることができます。これは、開発者コンソールで権限を設定する場合と同じ結果になります。
  3. スキルマニフェストのスキーマにあるように、イベントの実行を説明するeventsオブジェクトを追加します。追加するイベントは、スキルが必要とするものだけにしてください。
    スキルマニフェストにeventsオブジェクトがあってもapisオブジェクトにcustomオブジェクトが含まれない場合、カスタム対話モデルはオプションになります。
  4. update-skill-manifest CLIコマンドを使って、スキルのマニフェストを更新します。

スキルサービスにアマゾンウェブサービス(AWS)のLambda関数がある場合は、AWS Lambda関数のエンドポイントにAlexa Skills Kitのトリガーを設定してください。これはAWSコンソールで行うことができます。詳細はLambda関数のトリガーを設定するを参照してください。

リストスキルでリストやスキルのイベントを使用し、スキルの操作性を高める

リストイベントスキルイベントを使用すると、ユーザーがスキルとセッション中でないときでも「アレクサ、買い物リストにバナナを追加して」といった上位レベルの発話にすぐに応答できるスキルを作成できます。たとえば、ユーザーがニュースを聞いたり、ゲームをしたりしているときにAlexaリストに項目の追加をリクエストするような場合です。

スキルマニフェストを編集し、リストの読み込みとリストの書き込みの権限をユーザーから取得できるようにします。スキルのpermissionsオブジェクトの使い方については、カスタムコンポーネントなしのリストスキルマニフェストを参照してください。以下は、スキルがユーザーにAlexaリストの読み込みや書き込みの権限をリクエストするpermissionsオブジェクトの例です。

    "permissions": [
      {
        "name": "alexa::household:lists:read"
      },
      {
        "name": "alexa::household:lists:write"
      }
    ],

スキルを有効にすると、ユーザーはAlexaアプリで権限を付与または拒否するカードを受け取ります。

スキルで同意トークンを取得するには、スキルIDクライアントIDおよびクライアントシークレットが必要です。次の手順でこれらのIDを取得します。

  1. Alexa開発者コンソールにサインインします。
  2. スキルリストから、カスタムスキルを探し、スキル名の下にあるスキルIDをコピーをクリックします。
  3. アクションを選択ドロップダウンから、編集を選択します。
  4. ビルドツールアクセス権限の順にクリックします。
  5. AlexaクライアントIDAlexaクライアントシークレットを確認するには、画面の下までスクロールして表示をクリックします。
  6. AlexaクライアントIDAlexaクライアントシークレットをコピーします。

または、ASK CLIのget-skill-credentials SMAPIサブコマンド、ask smapi get-skill-credentials -s {skill-id}を使って、認証情報を取得することもできます。

アカウントリンクを実装し、スキルを有効にしたユーザーをアプリのIDに関連付けます。スキルマニフェストにはアカウントリンクオブジェクトを含める必要があります。このオブジェクトは、update-account-linking subcommandでマニフェストに追加できます。アカウントリンクの詳細については、アカウントリンクとはを参照してください。

スキルサービスで、リストイベントに応答するハンドラーを実装します。

スキルメッセージAPIを使用して、ユーザーがスキルセッション中でないときにリストにアクセスします。スキルメッセージAPIリファレンスを参照してください。

スキルにリストの同期以外の機能を追加する場合、スキルにインテントモデルを追加します。スキルにカスタムコンポーネントを含める場合、カスタム対話モデルが必要になります。また、apisオブジェクトにcustomオブジェクトを入れ子にする必要があります。詳細については、カスタムスキルマニフェストの例を参照してください。

サンプルコード