as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

@amazon-devices/kepler-media-account-login

@amazon-devices/kepler-media-account-login

KeplerメディアアカウントログインAPIは、アプリの認証ステータスをシステムに報告する方法を提供します。

注釈

アプリでは、起動するたびにユーザーのログインステータスを更新する必要があります。これはアカウントログインAPIを通じて行われます。アカウントのログインステータスには、サインイン済みとサインアウトの2つがあります。アプリは、ログインステータスを最新の状態に保つことによって、ユーザーが適切なコンテンツや機能にアクセスできるようにします。このインターフェイスを使用すると、アプリの起動時とログイン状態の変更時に、ユーザーがログインしているかどうかを示すブール値をアプリから伝達できます。システムが必要に応じてこのステータスを照会することもできるため、パーソナライズされたユーザーエクスペリエンスが可能になります。

製品では、この情報を活用し、ユーザーが既に認証されているサービスのコンテンツを取り上げたりフィルタリングしたりして、コンテンツへのすばやいアクセスを実現できます。

アカウントログイン機能には、認証ステータスを管理するための主要な2つのコンポーネントとして、updateStatusメソッドとhandleReadStatusコールバック関数が含まれています。updateStatusメソッドは、認証状態が変更されたときに、アプリの現在のログインステータスを報告してリアルタイムで更新します。handleReadStatusコールバック関数は、アプリの現在のログインステータスに関するシステムからの照会に応答します。どちらのメソッドでも、アカウントステータスを表すにはStatusTypeが使用されます。これは、 SIGNED_INSIGNED_OUTの2つの値になる可能性があります。

開始の手順

セットアップ

  1. package.jsonファイルのdependenciesセクションに、以下のライブラリ依存関係を追加します。

    クリップボードにコピーしました。

     "@amazon-devices/kepler-media-account-login": "~1.1.0",
     "@amazon-devices/headless-task-manager": "~1.1.0"
    
  2. 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>" }

このアプローチを使用すると、システムパフォーマンスが最適化され、メディアコントロールとアカウント管理の機能を明確に切り分けることができます。

KeplerメディアアカウントログインAPIのリファレンス

モジュール


Last updated: 2025年10月2日