開発者コンソール

手順1: メディアフィードを読み込む

手順1: メディアフィードを読み込む

メディアフィードは、アプリの中核となるものです。このフィードには、各メディアオブジェクトのタイトル、説明、サムネイル、その他の詳細情報などのビデオコンテンツが含まれています。

メディアフィードの構造(および各種プロパティや要素を指す用語)はそれぞれ異なるため、Fire App Builderでは、必要なコンポーネントを取得するクエリをメディアフィードに対して実行し、その結果をFire App Builderのコンテンツモデルに合致した構造と用語に変換します。既存の仕様への準拠をすべてのユーザーに求める代わりに、クエリ構文を使用することで、既存のフィードをFire App Builderで柔軟に使用できます。

これらのクエリを記述する(カテゴリーレシピとコンテンツレシピで指定する)前に、ここで説明する手順に従って、まずメディアフィードを読み込む必要があります。

メディアフィードの読み込みと構成には、 DataLoaderとDynamicParserという2つのFire App Builderコンポーネントが使用されます。DataLoaderモジュールはデータフィードを読み込み、DynamicParserはフィードの構造とキー値を構成して、Fire App Builderで読み取ることができるようにします。これらのモジュールを構成するには、JavaではなくJSONファイルを使用します。Javaコードは、さまざまなJSONファイルから値を読み取ります。

ビデオチュートリアル

Fire App Builderでメディアフィードを構成する方法の概要については、次のビデオチュートリアル(日本語字幕付き)を参照してください。

フィードの種類

次の種類のフィードを読み込むことができます。

オープンフィードの読み込み

アクセス制限のないオープンなウェブフィードでメディアの詳細を公開する場合、つまり、メディアへのアクセスにトークンを必要としない場合は、次の手順を使用します。

  1. DataLoadManagerConfig.jsonファイル([Android] ビューのapp > assets > configurations内)を開きます。

  2. data_downloader.implオプションの値は、com.amazon.dataloader.datadownloader.BasicHttpBasedDataDownloaderのままにします。
  3. 必要に応じて、次の2つのプロパティのオプションを更新します。
    • is_cache_manager_enabled: フィードがアプリでキャッシュされるかどうかを指定します。フィードをキャッシュすると、取得したメディアの画面への読み込みが高速になります。ただし、データローダーが更新されるかフィードの期限が切れるまで、フィードの最新の更新情報はキャッシュに反映されません。指定できる値はtrueまたはfalseです。通常はデフォルト(true)のままにします。
    • data_updater.duration: データローダーがフィードを更新して最新の更新情報を取得する間隔(秒数)を指定します。データローダーが更新されると、キャッシュは消去されます。デフォルトは14400秒(4時間)です。通常はデフォルト(14400)のままにします。

  4. BasicHttpBasedDownloaderConfig.jsonファイル(app > assets > configurations内)を開き、url_generator_implの値が次のようになっていることを確認します。

    {
      "url_generator_impl" : "com.amazon.dataloader.datadownloader.BasicFileBasedUrlGenerator"
    }
    
  5. BasicFileBasedUrlGeneratorConfig.jsonファイル(app > assets > configurations内)を開き、コンテンツが以下のコードと一致していることを確認します。このファイルでは、メディアフィードを格納するurl_fileの場所を指定します。次のように、ファイル名をデフォルトのままにしておくのが最も簡単です。

    {
      "url_file" : "urlFile.json"
    }
    
  6. urlFile.jsonapp > assets内)を開き、デフォルトのLightcastフィードを、自分のメディアフィードのURLに置き換えます。

    {
      "urls": [
        "http://www.lightcast.com/api/firetv/channels.php?app_id=249&app_key=gtn89uj3dsw&action=channels_videos"
      ]
    }
    

    複数のフィードがある場合は、次のようにコンマで区切ります。

    {
      "urls": [
        "http://www.example.com/feed1.json",
        "http://www.example.com/feed2.json"
      ]
    }
    
トークンベースのフィードの読み込み

アクセスがトークンによって制限されるウェブフィードにメディアの詳細を公開する場合は、次の手順を使用します。

  1. DataLoadManagerConfig.jsonファイル(app > assets > configurations内)を開きます。

  2. data_downloader.implオプションの値は、com.amazon.dataloader.datadownloader.BasicHttpBasedDataDownloaderのままにします。
  3. 必要に応じて、次の2つのプロパティのオプションを更新します。
    • is_cache_manager_enabled: フィードがアプリでキャッシュされるかどうかを指定します。フィードをキャッシュすると、取得したメディアの画面への読み込みが高速になります。ただし、データローダーが更新されるかフィードの期限が切れるまで、フィードの最新の更新情報はキャッシュに反映されません。指定できる値はtrueまたはfalseです。通常はデフォルト(true)のままにします。
    • data_updater.duration: データローダーがフィードを更新して最新の更新情報を取得する間隔(秒数)を指定します。データローダーが更新されると、キャッシュは消去されます。デフォルトは14400秒(4時間)です。通常はデフォルト(14400)のままにします。

  4. BasicHttpBasedDownloaderConfig.jsonファイル(app > assets > configurations内)を開き、値をcom.amazon.dataloader.datadownloader.BasicFileBasedUrlGeneratorからcom.amazon.dataloader.datadownloader.BasicTokenBasedUrlGeneratorに変更します。

    {
      "url_generator_impl": "com.amazon.dataloader.datadownloader.BasicTokenBasedUrlGenerator"
    }
    
  5. app > assets > configurationsBasicTokenBasedUrlGeneratorConfig.jsonという名前のファイルを作成します。このファイル内に、次の2つのキーと値のペアを含むJSONオブジェクトを作成します。

    {
      "base_url" : "http://yourcompany.com/mediafeed?id=$$token$$",
      "token_generation_url" : "http://yourcompany.com/url_to_generate_token"
    }
    
  6. base_urltoken_generation_urlの値を、開発者の実際の値に合わせてカスタマイズします。

    base_urlはメディアフィードのURLです。token_generation_urlには、そのURLにアクセスするためのトークンを生成するURLへのリンクを指定します。

    この例では、$$token$$という部分を通じてトークンがURLに挿入されます(メディアURLによっては、別の方法でトークンが挿入されることもあります。その場合は$$token$$の位置を適切に調整してください)。

    このBasicTokenBasedUrlGeneratorConfig.jsonファイルに含まれているパラメーター(base_urltoken_generation_url)は、BasicTokenBasedUrlGeneratorクラス(DataLoader > java > com.amazon.dataloader内)に渡されます。BasicTokenBasedUrlGeneratorクラスによってURLが作成され、そのURLがBasicHttpBasedDataDownloaderクラスで使用されます。BasicHttpBasedDataDownloaderクラスは、URLからコンテンツを取得します。

アプリにパッケージ化された静的フィードの読み込み

テストの目的で、アプリ内にパッケージ化された静的フィードを読み込むこともできます。静的フィードとは、アプリの内部にのみ存在し、アプリの外部で更新されることがないフィードです。このようなフィードは、新しいバージョンのアプリを再申請しない限り更新することができないため、通常は使用されません。したがって、用途はテスト目的に限られます。アプリ内にパッケージ化された静的フィードを読み込むには、以下の詳細を展開します。

フィードを読み込むその他の方法

上記のどちらの方法もフィードの読み込みに適していない場合は、Dataloaderインターフェイスを実装するクラスをDataLoaderフォルダに追加して、独自のデータローダーを作成できます。さらに、フィードがRESTエンドポイントから生成される場合は、独自のデータダウンローダーを記述する必要があります。

次のステップ

フィードの読み込みは最初の一歩にすぎません。次は、Fire App Builderがフィード内のカテゴリーとコンテンツを識別できるようにする必要があります。レシピ構成の概要を参照してください。