手順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がフィード内のカテゴリーとコンテンツを識別できるようにする必要があります。レシピ構成の概要を参照してください。