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を開いて、デバイスディスカバリーを行ってデバイスをセットアップしてください。通知および再発注の設定では、残量少時に再発注する (Automatic reorder when supply is low)を選択してください。

  2. デバイスが正しく残量を計測し、正しく報告できているかチェックします。もしもデバイスのアプリにも残量を表示している場合、その残量と一致しているか確認します。

    最新の消耗品レベルを確認するには、Device Settings > Supplyを選択します。

    残量少の通知

    消耗品の残量が少なくなり閾値を下回ると、Eメールでの通知が行われます。いくつかのケース、例えば電池のような誤差変動がある場合、変動を考慮し、3回閾値を下回ってから通知を行っています。
  3. スロット(replenishmentId)ごとの残量少検知

    デバイスを動作させ、消耗品の残量が閾値を下回るレベルまで低下させます。(注:再発注が行われるためには、閾値を下回る報告を3回連続レポートする必要があります)

  4. スロット(replenishmentId)ごとの残量リセット

    消耗品の交換(例えば、電池やインクの交換)を行い、交換後の消耗品レベルのChangeReportが少なくとも1回Alexaに送信されるようにします。

  5. 選択消耗品の確認

    Device Settings > Supply を選択し、選択されているASINを確認します。ここにはデバイスで再発注可能なASINの一覧が表示されます。

  6. スロット(replenishmentId)ごとの残量少検知

    1. Device Settingsで、Status (Supply)の中のChangeを選択します。
    2. Supply Settingsの"Notification and reorder settings"ページを開きます。
    3. Notify me when supply is lowを選択し、Continueを押します。
    4. デバイスを動作させ、消耗品の残量が閾値を下回るレベルまで低下させます。

次のステップ

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

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

  • Vendor Code (DRS developer consoleに表示されます)
  • 作成したSkill ID
  • テストを実行したデバイスのEndpoint ID (デバイス固有シリアル番号)
  • 上記テストを実行した際に使用したAmazonアカウントのCustomer ID

Customer IDは、Developer Consoleにログイン後、こちらdeveloper.amazon.com/mycid.htmlにアクセスしてください。