Skip to content

アクセストークン

アバターSDKの動作に必要となる、アクセストークンについて説明します。アクセストークンを意識して開発する必要がないよう設計されていますが、アバターSDKの動作上重要な概念となるため詳細に説明しています。アクセストークンの詳細な理解を必要としていない場合はこのページは読み飛ばして問題ありません。

Info

InitializeAsync着せ替えアプリへのリンクをドキュメントどおり実装していればアクセストークンは自動的にセットアップされます。

概要

Unityエディタ内での利用を含め、アバターSDKの動作には Avatar Play のシステムが発行するアクセストークンを必要とします。アクセストークンは自社アプリの利用者(以降、エンドユーザ)の許可のもと、自社アプリに対して発行されます。発行されたアクセストークンを使うことで、自社アプリはそのエンドユーザのアバターをロードできるようになります。

前提

実機での動作にはアプリ登録が必須となります。クイックスタートの「アプリ登録」の項を参考に登録を申請してください。

アクセストークンの取得方法

着せ替えアプリ経由で正規ユーザのトークンを取得する

着せ替えアプリ側にアカウントを持つユーザ(以降、正規ユーザ)は、着せ替えアプリを通してアクセストークンを発行し、自社アプリへ引き渡せます。システム連携方式は、OAuth認証方式とAndroidサービス認証方式が存在します。

OAuth認証方式

着せ替えアプリを起動させて連携する方式で、特別な要件がなければこちらで実装します。具体的な実装方法は着せ替えアプリへのリンクを参照してください。

Androidサービス認証方式(検討段階)

着せ替えアプリを起動することなく、バックエンドでサービス間通信で連携する方式で、Android でのみ利用できます。ユーザアクションを必要としないため、アプリの初回起動時から着せ替えアプリのアバターを利用可能です。VRなど、アプリの切り替えが難しい環境で有用です。

Info

Androidサービス認証方式は検討段階の機能です。利用を希望されるパートナーデベロッパー様は Avatar Play 担当者までお問い合わせください。

着せ替えアプリを通さずにゲストユーザのトークンを取得する

正規ユーザのアクセストークンを確認できない場合、 InitializeAsync 呼び出し時にゲストユーザとしてのアクセストークンが発行されます。この機構により、 InitializeAsync が成功すれば、正規またはゲストのいずれかのアバターがロードできることが保証されます。

正規ユーザへのアップデート

ゲストユーザの状態で着せ替えアプリからアクセストークンを取得すると、正規ユーザのアクセストークンへアップデートされます。このとき、ゲストユーザのアバターは破棄されます。

デバッグ用のアクセストークン

手動発行された固定のアクセストークンを設定することもできます。アバターSDKのデモにおいては、固定のアバターを利用するために、アクセストークンを明示的に設定しています。

AccessToken.Set("{アクセストークン}");

デモやデバッグ用にアバターを固定させたい場合などに利用します。配布する本番アプリケーションではこの利用は許可されません。

パーミッション

アクセストークンの権限(パーミッション)はいくつか存在します。デフォルトではアバターをロードする権限のみが付与されますが、連携時に追加の権限を要求できます。以下、現在予定している権限の種類です。

アバターをロードする権限

アプリ内でエンドユーザのアバターをロードする権限です。自社アプリは、アプリ内でエンドユーザ自身のアバターをロードすることはもちろんのこと、自社アプリを利用している他のユーザのアバターをロードすることが可能です。自社アプリを利用していないユーザのアバターをロードすることはできません。

アイテムを付与する権限(検討段階)

アプリ内でエンドユーザにアバターアイテムを付与する権限です。現時点では付与する機能は未実装ですが、権限を要求しておくことは現時点でも可能です。

アバターID

正規ユーザであってもゲストユーザであっても、自社アプリ内でアバターを一意に特定するためのアバターIDを持っています。InitializeAsync の成功後、 AvatarSDK.avatarID で参照できます。主に、同一シーン内で他者のアバターをロードする場合に利用します。

var avatarCoordinator = avatar.GetComponent<AvatarCoordinator>();

// 自身のアバターをロード
yield return avatarCoordinator.LoadAsync();

// 自身のアバターをロード。LoadAsync() と同じ。
yield return avatarCoordinator.LoadByAvatarIDAsync(AvatarSDK.avatarID);

// 他者のアバターをロード
yield return avatarCoordinator.LoadByAvatarIDAsync({アバターID});

正規ユーザについては、同一アプリ内では常に同じアバターIDが利用されます。

Warning

アバターIDはアバターのロードを行う目的でのみ利用してください。アバターのロードと関係のない他のアプリ内コンテンツと紐づけたり、ユーザ認証として利用することはできません。

Warning

アバターIDは自社アプリ内で一意となるIDです。他のアプリで流用することはできません。

アクセストークンの利用制限

アクセストークンはエンドユーザの許可の元、指定したアプリに対して発行されるものです。アプリ内からアクセストークンを抜き取ってアプリ外へ転送したり、他の用途で利用することはできません。

アクセストークンの無効化

正規ユーザまたはAvatar Playの運営によってアクセストークンが無効化されることがあります。元のアバターに復帰したい場合は再度着せ替えアプリと連携し、正規ユーザのアクセストークンを取得する必要があります。

自社アプリでの無効化

自社アプリ側で明示的にアクセストークンを無効化したい場合、次のように実装します。

AccessToken.Set("");
AccessToken.Save();