手順8: スキルの自動ペアリングを設定して仕上げる


手順8: スキルの自動ペアリングを設定して仕上げる

ここまでAlexaアプリを介して手動で有効にしたアプリを使用してきましたが、Alexa Client Libraryが組み込まれたことによって、作成したスキルを手動ではなく自動でペアリングできるようになりました。

Fire TV対応サンプルアプリに関する注意点

Fire TV対応サンプルアプリを使用している場合、サンプルアプリは自動ではペアリングされません。サンプルアプリは、この手順には対応していません。

自動ペアリング

スキルが自動ペアリングに対応している場合、ユーザーがAlexaアプリから手動でスキルを有効にする必要はありません。ユーザーがアプリを起動すると、スキルはAlexa Client Libraryを介して自動的に有効になります。これは、既存のFire TVスキルを基に、デバイスとの関係をAmazon側で推測できるためです。

Fire TVのビデオスキルの統合が承認されるには、スキルが自動ペアリングに対応している必要があります。スキルを自動ペアリング対応スキルに変換すると、Alexa Client Libraryのさまざまな機能を利用できるようになります。

国際化

バージョン1.4.0以降のAlexa Client Libraryでは、国際リージョンをサポートしています。Alexa Client LibraryがユーザーのAmazonアカウントの登録先マーケットプレイスから判断し、当該リージョンでAlexaとのペアリングを行います。

このフローをエンドツーエンドで機能させるためには、Amazonソリューションアーキテクトに対してリージョン固有のカタログを提供済みであるか、少なくとも米国向けカタログを特定のリージョンでも利用可能にすることを表明済みである必要があります。こうした情報を基にスキルが更新されると、国際リージョンのユーザーがアプリを自動ペアリングし、Alexaで音声を使用してアプリを制御できるようになります。

スキルの検出

手動での有効化が必要なスキルが自動ペアリング対応スキルに変換されると、ユーザーから見た場合、スキルはAlexaアプリのAlexaスキルストアに表示されなくなり、Fire TVのビデオスキルのインタラクションの一部になります。

つまり、ユーザー側では、アプリがシームレスにAlexaに対応するため、Alexaスキルストアでスキルを探すことなく、音声機能を使用できるようになります。これにより、ユーザーによる音声機能の利用が大幅に促進されます。

Alexaディレクティブ

また、スキルが自動ペアリング対応スキルに変換されると、受信するディレクティブが若干変化します。現状では、ユーザーがカタログにないコンテンツの再生を依頼した場合でもディレクティブを受信しますが、変換後はこのようなことがなくなります。代わりに、カタログに基づいてアプリに関連するディレクティブのみを受信します。

したがって、カタログIDを持つエンティティを見つけるために複数のエンティティを繰り返し処理する必要はなくなります。受信したリストの最初のエンティティが、そのまま求めるエンティティになります(Lambda関数でテストを行い、確認してみてください)。

ライブアプリテスト

自動ペアリング構成の更新が完了すると、Fire TVに開発者ビルドをサイドロードするというやり方では、アプリのAlexa機能をテストできなくなります。代わりに、Fire TVアプリストアにライブアプリテストを送信して、Alexa Client Libraryの自動ペアリング機能を含むAlexa機能をテストする必要があります。ライブアプリテストの実行方法の詳細については、ライブアプリテストの開始方法を参照してください。

ビデオスキルの統合では、スキルの自動ペアリングは開発とテストを繰り返すうえでのスピードに影響するため、自動ペアリング対応スキルに移行する前に、スキルとアプリの開発をできるだけ済ませておくようにしてください。自動ペアリング対応スキルへの変更は、元には戻せません。移行後は、スキルのすべてのテストをライブアプリテストで実行する必要があります。

自動ペアリング対応スキルに移行するための前提条件

  1. 自動ペアリング対応スキルへの移行時に問題の発生を回避するため、まずAlexaアプリでビデオスキルを無効にします。

    スキルを無効にするには、左上隅のメニューをクリックし、[設定] > [TV・ビデオ] の順にクリックします。スキルを探してクリックし、[スキルを無効にする] をクリックします。

  2. ほかのテスターもAlexaアプリのビデオスキルを無効にしていることを確認します。
  3. メニューから [設定] > [デバイスの設定] の順にクリックします。下までスクロールして [VSKTV] を選択し、スキルを無効にします。スマートホームスキルがほかにもある場合は、すべて無効にします

    https://alexa.amazon.com[スマートホーム] > [デバイス] の順にクリックし、[すべて接続解除] を選択して、スキルを無効にすることもできます)。

  4. メニューから [設定] > [TV・ビデオ] の順にクリックします。
  5. [Fire TV] をクリックします。Fire TVのビデオスキルが有効になっていること、およびFire TVがテストに使用するEchoとペアリングされていることを確認します。

    Fire TVのビデオスキルがデバイスとペアリングされている場合は、[デバイスを管理] へのリンクが表示されます(Fire TVとペアリングされているデバイスの一覧が画面に表示されます)。Fire TVのビデオスキルがデバイスとペアリングされていない場合は、[Alexaデバイスをリンク] が表示されます。

  6. この時点で、ビデオスキルの全テスターがここまでの手順を完了していることを確認します。
  7. Fire TV対応アプリに関連付けられているセキュリティプロファイルのクライアントIDをAmazonソリューションアーキテクトに通知し、このクライアントIDがwriteproactive_enablementの両スコープでホワイトリストに登録されている必要があることを通知します(Alexa Client Libraryが機能するために必要です)。

    LWAクライアントIDは、セキュリティプロファイルの作成で、セキュリティプロファイルから取得したものです(クライアントIDを表示するには、開発者コンソールで [設定] > [セキュリティプロファイル] の順にクリックします)。

SAと連携した自動ペアリングスキル構成の正式化

  1. 前提条件の手順がすべて完了していることを確認してから次へ進みます。
  2. 新しいライブアプリテストをAmazonアプリストアに送信します。ライブアプリテストにAmazonソリューションアーキテクト(SA)を追加します。
  3. 次の情報を1通のEメールにまとめてSAに送信します。
    1. SAに対して、このライブアプリテストを送信し、テストにSAを追加したことを知らせます。
    2. SAに対して、スキル構成を更新し、送信したアプリのLWAクライアントIDをスキル構成に関連付けるよう依頼します。

    3. SA担当者にビデオスキルのスキルIDを通知します。これは、手順1: ビデオスキルとLambda関数を作成するで作成したスキルのIDです。

    4. スキルのPAMSパートナーIDを更新する必要があることをSAに通知します。この更新はすべての自動ペアリング対応スキルで必要なものであり、更新が行われない場合、今後スキル構成の編集で問題が生じます。

    5. externalIdsフィールドから、使用しているカタログをSAに通知し、スキルが正しいカタログに関連付けられていることをSAが確認できるようにします。

SA担当者が構成に対する必要な更新を完了すると、スキルが自動ペアリング対応になります。さらに、スキルはFire TVの音声認識リモコンのマイクからディレクティブを直接受け取るようになります。

Lambda関数からの通信の更新

これまで、テストに使用するADM登録IDは単純にハードコーディングしてきましたが、より多くのユーザーに対応する場合は、やり方を変える必要があります。Lambda関数と単一のユーザー間だけで通信するのではなく、Lambda関数から全ユーザーに対して通信を行うことが必要になります。各ユーザーを一意に識別するには、アプリでのAlexa Client Libraryの初期化時に渡されるアプリインスタンスIDを使用します。

Lambda関数から全ユーザーに対する通信を更新するには、次の手順を実行します。

  1. ADMを使用している場合、アプリインスタンスIDはADM登録IDです。LambdaコードでアプリインスタンスIDを確認するには、ディレクティブの新しい「cookie」セクションで、applicationInstanceIdというフィールドを探します。このフィールドにアプリインスタンスID/ADM登録IDが含まれています。Lambda関数からアプリへのディレクティブの送信先を指定する際、1つのテストデバイスだけにハードコーディングするのではなく、この一意の識別子を使用します。以下の例を参照してください。

    {
        "directive": {
            "header": {
                "namespace": "Alexa.PlaybackController",
                "name": "FastForward",
                "payloadVersion": "3",
                "messageId": "c934573d-a72a-474e-86d7-d4284759c829",
                "correlationToken": "AAAAAAAAAABz/cBzCAf/WqtdDQgXg3ljcAEAAAAAAADStuqEh0EHcdBvtW+vl2QdQc5ZS/NRHrdxX2ITRtFvOegAtWpVEmalGK4gu/Yi7nu/ahsRaXtzL2iZyK/QnL14GYA1bQsELoUJg2f99dATxQNWkXFhalXEEN7viyTkx2ITgKF+opoBmBGuLzqhvIb2KzEdo2CMC0Oa6k2F3Iza60G37AO8HfVcN6I5G6W/u40484xv7KmAgDavDeZmnS1/zCbdS7J8koyvSvlCHVVp0TaYdLDJ5E0EvIxKA2cDWfr8EKdcEJryUD0PhMyvBkKdCqAUyelrrCetO4sI9TmOPdQcuqt+WAdjRYKhwMOphkMAtV0wr0Mdh7xSR/KD+A6NRWg0p5j7rgTGVs0/ndgj4+lgHDLmGYkr9wvwm2FdT+mTvTf+peTBi39eiVEN0fhJ7bhIOn4tHQfL9Vgwh0HCGN/Q9ibHcqiszoTXEendfLrUlTSYgpDRwfI8UtJkL1cXHk372UPdqUGQ2p5llE/dpA=="
            },
            "endpoint": {
                "scope": {
                    "type": "BearerToken",
                    "token": "2d0a58d5-75ea-befc-18b8-239bb567260d"
                },
                "endpointId": "このフィールドは無視してください。",
                "cookie": {
                    "deviceType": "sloane",
                    "applicationInstanceId": "これがアプリインスタンスID/ADM登録IDです",
                    "appName": "Test",
                    "appPackageName": "com.test.plus",
                    "deviceId": "G0123V0955123456"
                }
            },
            "payload": {}
        }
    }
    
  2. Alexaディレクティブでも触れたとおり、Lambda関数が受け取るディレクティブの最初のエンティティがカタログIDになるため、ディレクティブの処理に使用するロジックを簡略化できる可能性があります。ディレクティブの処理に関するコードを更新する必要がある場合は、ここでコードを変更してください。
  3. スキルが完全な自動ペアリング対応のビデオスキルに変換されたので、Discover.Responseペイロードからエンドポイントコードの一部を削除できます(まだ削除していない場合)。不要になった以下のセクションを削除すると、これまでのテスターがスムーズに移行できるようになります。

    "endpointId": "VSKTV",
          "description": "VSKTVは、Fire TVに組み込むために開発されたビデオスキル用デフォルトデバイスです",
          "friendlyName": "VSKTV",
          "manufacturerName": "Amazon"
    

リモコンを使用した新しい自動ペアリングスキルの初回テスト

Fire TVリモコンを使用して以下のフレーズをテストするには、次の手順を実行します。

  1. 既にインストールされているアプリをすべてFire TVから削除します(アプリが多い場合は、Fire TVの登録を解除して再登録する方法が最も簡単です)。
  2. Fire TVのオペレーティングシステムを最新バージョンにアップデートします。

    ソフトウェアアップデートを手動で確認するには、Fire TVメニューから [設定] > [端末] > [バージョン情報] > [アップデートをチェック] または [設定] > [My Fire TV] > [バージョン情報] > [アップデートをチェック] の順に選択します。

  3. 新しいAlexa Client Library対応アプリを使用して新しいライブアプリテストを送信し、アプリをFire TVに送信します。
  4. アプリをダウンロードしたら起動して、アカウントにログインします。
  5. 5秒ほど待ちます。
  6. Fire TVのホームページに戻ります。
  7. Fire TVリモコンを使用して、「<アプリ名>を起動して」と言います。アプリが起動し、Alexaが「このアプリでアレクサが有効になりました」と応答します。
  8. Fire TVリモコンを使用して、「<タイトル>が見たい」と言います。ここでの「タイトル」は、CDFカタログに登録されているタイトルです。再生が開始されます。
  9. 以下のようなほかのフレーズを試します。

    a.チャンネルの変更: 「<チャンネル名>に変えて」

    b.トランスポートコントロール: 「一時停止」

    c.検索: 「<アプリ名>で<タイトル>を探して」

Echoを使用したフレーズのテスト

Fire TVリモコンではなくEchoで上記のフレーズをテストするには、次の手順を実行します。

  1. スマートフォンでAlexaアプリを開きます。アプリのホーム画面でメニューボタン(左上隅)をクリックし、[設定] > [デバイスの設定] の順にクリックします。
  2. デバイスのリストを下までスクロールし、テレビとVSKデバイスを無効にします。

    デバイスを無効にする
    デバイスを無効にする

    http://alexa.amazon.comにアクセスし、[スマートホーム] > [デバイス] > [すべて接続解除] の順に選択して、これらのデバイスを無効にすることもできます。

  3. アプリのホーム画面でメニューボタン(左上隅)をクリックし、[設定] > [TV・ビデオ] の順にクリックして、[Fire TV] をクリックします。
  4. [Alexaデバイスをリンク] をクリックします。Fire TVを選択し、EchoとFire TVをペアリングします。
  5. Alexa Skills Kit開発者コンソールにアクセスします(手順A: ビデオスキルの作成を始めるでビデオスキルを構成した画面です)。
  6. ビデオスキルのベータテストが実行中の場合は、ベータテストを終了します。
  7. 新しいベータテストを開始し、新しいテスターを追加します。
  8. Eメールで届く新しいベータテストの招待をすべてのベータテスターが承諾していることを確認します。
  9. 冒頭に「アレクサ、」を付けて前のセクションの手順7~9のフレーズを使用し、EchoからFire TV対応アプリを操作します。

次のステップ

最も一般的なフレーズのテストが完了したので、次の手順8: 認定に向けたテストを行うに進み、より包括的な音声サポートのテストを実施します。公開に向けて、アプリが認定チェックリストに記載されているフレーズに対応できるようにする必要があります。