@amazon-devices/kepler-media-account-login
KeplerメディアアカウントログインAPIは、アプリの認証ステータスをシステムに報告する方法を提供します。
注釈
アプリでは、起動するたびにユーザーのログインステータスを更新する必要があります。これはアカウントログインAPIを通じて行われます。アカウントのログインステータスには、サインイン済みとサインアウトの2つがあります。アプリは、ログインステータスを最新の状態に保つことによって、ユーザーが適切なコンテンツや機能にアクセスできるようにします。このインターフェイスを使用すると、アプリの起動時とログイン状態の変更時に、ユーザーがログインしているかどうかを示すブール値をアプリから伝達できます。システムが必要に応じてこのステータスを照会することもできるため、パーソナライズされたユーザーエクスペリエンスが可能になります。
製品では、この情報を活用し、ユーザーが既に認証されているサービスのコンテンツを取り上げたりフィルタリングしたりして、コンテンツへのすばやいアクセスを実現できます。
アカウントログイン機能には、認証ステータスを管理するための主要な2つのコンポーネントとして、updateStatusメソッドとhandleReadStatusコールバック関数が含まれています。updateStatusメソッドは、認証状態が変更されたときに、アプリの現在のログインステータスを報告してリアルタイムで更新します。handleReadStatusコールバック関数は、アプリの現在のログインステータスに関するシステムからの照会に応答します。どちらのメソッドでも、アカウントステータスを表すにはStatusTypeが使用されます。これは、 SIGNED_INとSIGNED_OUTの2つの値になる可能性があります。
開始の手順
セットアップ
-
package.jsonファイルの
dependenciesセクションに、以下のライブラリ依存関係を追加します。"@amazon-devices/kepler-media-account-login": "~1.1.0", "@amazon-devices/headless-task-manager": "~1.1.0" -
manifest.tomlに、アクセスするために必要な以下の権限を追加します。
注: マニフェストエントリを変更するときは、以下の例に示すように、
com.amazondeveloper.media.sampleを、アプリの実際のパッケージIDに置き換えてください。schema-version = 1 [package] title = "<アプリタイトル>" id = "com.amazondeveloper.media.sample" [components] [[components.interactive]] id = "com.amazondeveloper.media.sample.main" runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0" launch-type = "singleton" # カテゴリ "com.amazon.category.kepler.media" は主要コンポーネントのみに必要で、マニフェストの [[extras]] # セクションの "component-id" 値を使用して識別されます。 categories = ["com.amazon.category.main", "com.amazon.category.kepler.media"] [[components.service]] id = "com.amazondeveloper.media.sample.interface.provider" runtime-module = "/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0" launch-type = "singleton" [processes] [[processes.group]] component-ids = ["com.amazondeveloper.media.sample.main"] [[processes.group]] component-ids = ["com.amazondeveloper.media.sample.interface.provider"] [offers] [[offers.interaction]] id = "com.amazondeveloper.media.sample.main" [[offers.service]] id = "com.amazondeveloper.media.sample.interface.provider" required-privileges = ["com.amazon.multimedia.privilege.session.manage"] [[message]] uri = "pkg://com.amazondeveloper.media.sample.main" # [[offers.interaction]] で使用した権限と一致させます。権限が追加されていない場合は "*" を使用します。 sender-privileges = ["*"] receiver-privileges = ["self"] [[offers.module]] id = "/com.amazondeveloper.media.sample.module@ISomeUri1" includes-messages = ["pkg://com.amazondeveloper.media.sample.main"] [[extras]] key = "interface.provider" component-id = "com.amazondeveloper.media.sample.main" [extras.value.application] [[extras.value.application.interface]] interface_name = "com.amazon.kepler.media.IContentLauncherServer" attribute_options = ["partner-id"] static-values = { "partner-id" = "<パートナーID>" } [[extras.value.application.interface]] interface_name = "com.amazon.kepler.media.IAccountLoginServer" attribute_options = ["Status"] # このマニフェストの例では、コンテンツランチャーとアカウントログインの両方のインターフェイスを定義しています。 # アカウントログインクラスターは、応答性の理由から対話型コンポーネントではなくサービスコンポーネントで # 処理する必要があるため、"override_attribute_component" を使用して "Status" 属性の呼び出しを # サービスコンポーネントにリダイレクトします。 override_attribute_component = { Status = "com.amazondeveloper.media.sample.interface.provider" } [needs] [[needs.module]] # この形式では、「media」の後に意図的にドット(.)が追加されています。この表記は今後のリリースで # 変更される予定です。 id = "/com.amazon.kepler.media.@IAccountLogin1" [[needs.module]] id = "/com.amazon.kepler.media@IContentLauncher1"
メディアアプリは、多くの場合、次の3つの主要なAPIと統合する必要があります。
- コンテンツランチャークラスターAPI。コンテンツを検索して起動するために使用します。
- KeplerメディアコントロールAPI。起動したメディアを制御するために使用します。
- アカウントログインAPI。アカウントログインステータスをシステムに伝達するために使用します。
コンテンツランチャーAPIとKeplerメディアコントロールAPIは、ほとんどの場合、Keplerメディアクエリを処理する対話型コンポーネントとして実装されます。このコンポーネントは、以下のTOMLスニペットや前の例に示されているように、アプリマニフェストのextrasセクションでinterface.providerキーを使用して指定します。
[[extras]]
key = "interface.provider"
component-id = "<主要対話型コンポーネントのID>"
アカウントログインAPIはサービスアプリとして実装され、アプリ全体が起動していなくても、システムからのアカウントログインステータスの照会に応答できます。アカウントログインAPIは、サービスコンポーネントによって処理される1つのStatus属性を使用します。ログインステータス属性の操作が適切にルーティングされるようにするには、以下のTOMLの例や前の例に示されているように、アプリマニフェストでoverride_attribute_component設定を使用してサービスコンポーネントを指定する必要があります。
override_attribute_component = { Status = "<アカウントログインAPIを実装しているサービスコンポーネントのID>" }
このアプローチを使用すると、システムパフォーマンスが最適化され、メディアコントロールとアカウント管理の機能を明確に切り分けることができます。
関連トピック
モジュール
- index
- turbo-modules/AccountLogin
- turbo-modules/AccountLogin
- turbo-modules/AccountLoginServerComponent
- turbo-modules/AccountLoginServerComponent
- turbo-modules/KeplerScriptAccountLogin
- turbo-modules/KeplerScriptAccountLogin
Last updated: 2025年10月2日

