リストスキルの作成手順



リストスキルの作成手順

リストスキルはリストイベントやスキルイベントにアクセスできるため、リストスキルを作成するとユーザーの操作性が向上します。

リストスキルを作成するには、ASK CLI(Alexa Skills Kitコマンドラインインターフェース)を使用してスキルを作成または更新し、適切なapisオブジェクトと、適切なpermissionseventsオブジェクトが含まれるようスキルマニフェストを編集します。

リストスキルを作成する手順は以下のとおりです。

クイックスタートガイドに従ってASK CLIをインストールし、新しいスキルを作成します。

スキルマニフェストファイルがあるskill.jsonファイルを、以下のように編集します。

  • スキルマニフェストは、apisオブジェクトにあるhouseholdListを持つスキルマニフェストか、apisオブジェクトに追加のhouseholdListフィールドを持つカスタムスキルマニフェストのいずれかです。スキルマニフェストのマニフェストのサンプルを参照してください。

  • ユーザーに対して適切な権限を付与するプロンプトを出すようスキルをセットアップすると、スキルサービスがこれらのイベントを参照できるようになります。skill.jsonファイルにはpermissionsInfoオブジェクトが含まれている必要があります。詳細については、イベントを含めるようにスキル定義を更新するを参照してください。permissionsInfoオブジェクトを使用して、Alexaリストの読み込みまたは書き込み権限の許可をユーザーに求めることができます。これは、開発者コンソールでアクセス許可を設定する場合と同じ結果になります。

  • スキルマニフェストには、イベントへのサブスクリプションを含むeventsオブジェクトが必要です。スキルマニフェストを参照してください。含めるイベントは、スキルが必要とするものだけにしてください。

  • スキルマニフェストにeventsオブジェクトがあり、apisオブジェクトにcustomオブジェクトが含まれない場合、カスタム対話モデルはオプションです。

  • スキルサービスにAWS Lambda関数を使用する場合は、AWS Lambda関数のエンドポイントにAlexa Skills Kitのトリガーが設定されていることを確認する必要があります。これはAWSコンソールで行うことができます。詳細はこちらを参照してください。

スキルがイベントを使用しないカスタムスキルであれば、引き続きAmazon開発者ポータルで管理することができ、リストとの対話型のスキルであっても、リストスキルとしては扱われません。

ただし、スキルにリストイベントへのサブスクリプションを行うhouseholdListコンポーネントが含まれる場合、そのスキルはASK CLIを使って管理する必要があり、Amazon開発者ポータルでは編集できなくなります。

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

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

前のセクションで述べた機能をリストスキルに追加するには、以下の手順に従います。

  • スキルマニフェストを編集し、リストの読み込みとリストの書き込みの権限をユーザーから取得できるようにします。スキルのpermissionsオブジェクトの例については、リストマニフェストを参照してください。以下は、スキルでAlexaリストの読み取りおよび書き込みアクセス権限をユーザーに求めるpermissionsオブジェクトのサンプルです。
    "permissions": [
      {
        "name": "alexa::household:lists:read"
      },
      {
        "name": "alexa::household:lists:write"
      }
    ],

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

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

  • 開発者コンソールのスキル一覧から、該当のリストスキルを見つけます。タイトルの下のスキルIDとクライアントシークレットを表示をクリックします。スキルIDをコピーします。次の図では、Battle Seattleがリストスキルです。
スキルIDとクライアントシークレットを取得する
スキルIDとクライアントシークレットを取得する
  • https://developer.amazon.com/home.htmlに移動します。設定Security Profilesを選択します。このリストで、コピーした物と同じスキルIDを検索します。スキルIDをクリックして、ウェブ設定を選択します。クライアントIDの値をコピーします。
クライアントIDの取得
クライアントIDの取得
  • アカウントリンクを実装し、スキルを有効にしたユーザーをアプリのIDに関連付けます。スキルマニフェストにはアカウントリンクオブジェクトを含める必要があります。このオブジェクトは、create-account-linkingサブコマンドでマニフェストに追加できます。全般的な情報については、アカウントリンクとはをご覧ください。

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

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

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

リストスキル作成に関するそのほかのリソース

スキルにリストイベントを使用する場合についてのそのほかの詳細については、Alexaスキルのリストイベントを参照してください。

リストイベントを含めるよう既存のスキルを更新するには、SMAPIを使ってスキルにイベントを追加するを参照してください。