Developer Console

DRS - スキルのテスト

ステップ1. デバイスディスカバリーのテスト

Lambda関数のテスト

最も簡単なDiscoveryリクエストに対するLambda関数のテストは、Lambdaコンソール上で行うことができます。

  1. デフォルトの状態で右上のテストをクリックします。 テストイベントの設定画面が開きます。
  2. 新しいテストイベントの作成が選択されたままにし、イベントテンプレートHello Worldのままにします。イベント名discoveryと入力し、その下のエディタで既存のコードをすべて下記のJSONに置き換えます。
{
    "directive": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover",
            "payloadVersion": "3",
            "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
        },
        "payload": {
            "scope": {
                "type": "BearerToken",
                "token": "access-token-from-skill"
            }
        }
    }
}
  1. 作成をクリックし、右上のテストをクリックします。成功すると、実行結果に下記のような表示がされます:
{
  "event": {
    "header": {
      "correlationToken": "12345692749237492",
      "messageId": "1bd5d003-31b9-476f-ad03-71d471922820",
      "name": "Discover.Response",
      "namespace": "Alexa.Discovery",
      "payloadVersion": "3"
    },
    "payload": {
      "endpoints": [{
          "endpointId": "appliance-001",
          "friendlyName": "プリンター",
          "description": "プリンター by XYZ株式会社",
          "manufacturerName": "XYZ株式会社",
          "displayCategories": [
            "OTHER"
          ],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.InventoryLevelSensor",
              "version": "3",
              "instance": "InventoryLevelSensor-1",
              "properties": {
                "supported": [{
                  "name": "level"
                }],
                "proactivelyReported": true,
                "retrievable": true
              },
                // Other Capabilities here
            }
          ]
        }]
    }
  }
}

コネクテッドデバイスのテスト

実装が完了し、Lambda関数のテストも完了したら、コネクテッドデバイスが設計通り、スマートホームスキルによりディスカバリーされるかをテストします。

  1. Lambda関数のトリガーにスマートホームが正しく追加され有効化されていることを確認します。Lambdaコンソールでスマートホームスキルを選択し、"Alexa Smart Home"がトリガーに設定されていることを確認してください。もしも設定されていない場合はステップ5のLambda関数の設定に戻って設定を行ってください。
  2. Alexa Appにサインインします (Android, iOS あるいは web。スキルを作成した開発者アカウントを使用してください。
  3. Alexa Appでメニューからスキルを選択し、有効なスキルをクリック、開発スキルをクリックして、作成したスキルを選択します。
  4. 有効にするボタンを押すと、アカウントリンクのページが表示され、デバイスメーカーのアカウントを入力します。もしもアカウントリンクがうまく行かない場合はデバイスメーカーのアカウントが有効であるか確認してください。問題ない場合、アカウントリンクの設定に誤りがある可能性があります。この場合のデバッグには、Alexa: Debugging account linkingが参考になります。アカウントリンクを無効にするにはスキルそのものを無効化してください。
  5. デバイスを検出をクリックします。
  6. もしもデバイスが検出されない場合は、Lambda関数のログをチェックして、AlexaからDiscoverディレクティブが届いているかを確認してください。よくあるミスの例としては、JSONのフォーマットにエラーがあるため、イベントがAlexa側で正しく理解されないケースです。
  7. デバイスが正しく検出された場合は、スキルの他の機能(あれば)のテストに移行できます。

ステップ2. End-to-Endでの機能テスト

認証テストケースの実行

  1. デバイスのセットアップ – 上記の手順で、Alexa AppによるデバイスのディスカバリーとDRS設定を完了させます。再発注のオプションには「通知のみ」「再注文する」および「何もしない(opt-out)」の選択肢を選択可能です。
  2. 残量少の通知 – 各々のスロット (replenishmentId) に対し、デバイスを使用することで消耗品を消費させ、初期レベルの20%に低下させてください。
  3. 消耗品の交換 - 各々のスロット (replenishmentId) に対し、消耗品の交換 (例:インクや電池の交換) を行って少なくとも1回の交換後の消耗品に対するChangeReportが通知されるまで使い続けてください。

次のステップ

テストの結果、作成したスキルが2つのDRSの主要な機能(Discovery消耗品の通知) について満足できる動作が確認できたら、認証プロセスに移行することができます。Amazon DRSの担当者にコンタクトし、次のステップの認証プロセスについて議論を開始してください。

認証に際し、Amazonの担当者に対し下記の情報をお知らせください:

  • 作成したSkill ID
  • Model ID (DRS developer consoleに表示されます)
  • Vendor Code (DRS developer consoleに表示されます)
  • 上記テストを実行した際に使用したAmazonアカウントのCustomer ID (取得方法はAmazonの担当者にお問い合わせください)
  • テストを実行したデバイスのEndpoint ID (デバイス固有シリアル番号)