手順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でメディアフィードを構成する方法の概要については、次のビデオチュートリアル(日本語字幕付き)を参照してください。
フィードの種類
次の種類のフィードを読み込むことができます。
- オープンフィード: トークンなしでアクセスできるフィード。
- トークンベースのフィード: アクセスにトークンを必要とするフィード。
アクセス制限のないオープンなウェブフィードでメディアの詳細を公開する場合、つまり、メディアへのアクセスにトークンを必要としない場合は、次の手順を使用します。
-
DataLoadManagerConfig.jsonファイル([Android] ビューのapp > assets > configurations内)を開きます。
ヒント: Android Studioでは、フォルダを参照する代わりにShiftキーを2回押してからファイル名を入力すると、ファイルを簡単に検索できます。 - data_downloader.implオプションの値は、
com.amazon.dataloader.datadownloader.BasicHttpBasedDataDownloaderのままにします。 - 必要に応じて、次の2つのプロパティのオプションを更新します。
is_cache_manager_enabled: フィードがアプリでキャッシュされるかどうかを指定します。フィードをキャッシュすると、取得したメディアの画面への読み込みが高速になります。ただし、データローダーが更新されるかフィードの期限が切れるまで、フィードの最新の更新情報はキャッシュに反映されません。指定できる値はtrueまたはfalseです。通常はデフォルト(true)のままにします。-
data_updater.duration: データローダーがフィードを更新して最新の更新情報を取得する間隔(秒数)を指定します。データローダーが更新されると、キャッシュは消去されます。デフォルトは14400秒(4時間)です。通常はデフォルト(14400)のままにします。注: アプリのキャッシュは、ユーザーがアプリを起動するたびに自動的に消去され、フィードが更新されます。
-
BasicHttpBasedDownloaderConfig.jsonファイル(app > assets > configurations内)を開き、
url_generator_implの値が次のようになっていることを確認します。{ "url_generator_impl" : "com.amazon.dataloader.datadownloader.BasicFileBasedUrlGenerator" } -
BasicFileBasedUrlGeneratorConfig.jsonファイル(app > assets > configurations内)を開き、コンテンツが以下のコードと一致していることを確認します。このファイルでは、メディアフィードを格納する
url_fileの場所を指定します。次のように、ファイル名をデフォルトのままにしておくのが最も簡単です。{ "url_file" : "urlFile.json" } -
urlFile.json(app > 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" ] }
アクセスがトークンによって制限されるウェブフィードにメディアの詳細を公開する場合は、次の手順を使用します。
-
DataLoadManagerConfig.jsonファイル(app > assets > configurations内)を開きます。
ヒント: Android Studioでは、フォルダを参照する代わりにShiftキーを2回押してからファイル名を入力すると、ファイルを簡単に検索できます。 - data_downloader.implオプションの値は、
com.amazon.dataloader.datadownloader.BasicHttpBasedDataDownloaderのままにします。 - 必要に応じて、次の2つのプロパティのオプションを更新します。
is_cache_manager_enabled: フィードがアプリでキャッシュされるかどうかを指定します。フィードをキャッシュすると、取得したメディアの画面への読み込みが高速になります。ただし、データローダーが更新されるかフィードの期限が切れるまで、フィードの最新の更新情報はキャッシュに反映されません。指定できる値はtrueまたはfalseです。通常はデフォルト(true)のままにします。-
data_updater.duration: データローダーがフィードを更新して最新の更新情報を取得する間隔(秒数)を指定します。データローダーが更新されると、キャッシュは消去されます。デフォルトは14400秒(4時間)です。通常はデフォルト(14400)のままにします。注: アプリのキャッシュは、ユーザーがアプリを起動するたびに自動的に消去され、フィードが更新されます。
-
BasicHttpBasedDownloaderConfig.jsonファイル(app > assets > configurations内)を開き、値を
com.amazon.dataloader.datadownloader.BasicFileBasedUrlGeneratorからcom.amazon.dataloader.datadownloader.BasicTokenBasedUrlGeneratorに変更します。{ "url_generator_impl": "com.amazon.dataloader.datadownloader.BasicTokenBasedUrlGenerator" } -
app > assets > configurationsにBasicTokenBasedUrlGeneratorConfig.jsonという名前のファイルを作成します。このファイル内に、次の2つのキーと値のペアを含むJSONオブジェクトを作成します。
{ "base_url" : "http://yourcompany.com/mediafeed?id=$$token$$", "token_generation_url" : "http://yourcompany.com/url_to_generate_token" } -
base_urlとtoken_generation_urlの値を、開発者の実際の値に合わせてカスタマイズします。base_urlはメディアフィードのURLです。token_generation_urlには、そのURLにアクセスするためのトークンを生成するURLへのリンクを指定します。この例では、
$$token$$という部分を通じてトークンがURLに挿入されます(メディアURLによっては、別の方法でトークンが挿入されることもあります。その場合は$$token$$の位置を適切に調整してください)。このBasicTokenBasedUrlGeneratorConfig.jsonファイルに含まれているパラメーター(
base_urlとtoken_generation_url)は、BasicTokenBasedUrlGeneratorクラス(DataLoader > java > com.amazon.dataloader内)に渡されます。BasicTokenBasedUrlGeneratorクラスによってURLが作成され、そのURLがBasicHttpBasedDataDownloaderクラスで使用されます。BasicHttpBasedDataDownloaderクラスは、URLからコンテンツを取得します。
アプリにパッケージ化された静的フィードの読み込み
テストの目的で、アプリ内にパッケージ化された静的フィードを読み込むこともできます。静的フィードとは、アプリの内部にのみ存在し、アプリの外部で更新されることがないフィードです。このようなフィードは、新しいバージョンのアプリを再申請しない限り更新することができないため、通常は使用されません。したがって、用途はテスト目的に限られます。アプリ内にパッケージ化された静的フィードを読み込むには、以下の詳細を展開します。
フィードを読み込むその他の方法
上記のどちらの方法もフィードの読み込みに適していない場合は、Dataloaderインターフェイスを実装するクラスをDataLoaderフォルダに追加して、独自のデータローダーを作成できます。さらに、フィードがRESTエンドポイントから生成される場合は、独自のデータダウンローダーを記述する必要があります。
次のステップ
フィードの読み込みは最初の一歩にすぎません。次は、Fire App Builderがフィード内のカテゴリーとコンテンツを識別できるようにする必要があります。レシピ構成の概要を参照してください。

