アクセストークン¶
SDKの動作に必要となる、アクセストークンについて説明します。アクセストークンを意識して開発する必要がないよう設計されていますが、SDKの動作上重要な概念となるため詳細に説明しています。アクセストークンの詳細な理解を必要としていない場合はこのページは読み飛ばして問題ありません。
Info
InitializeAsync
や着せ替えアプリへのリンクをドキュメントどおり実装していればアクセストークンは自動的にセットアップされます。
概要¶
Unityエディタ内での利用を含め、SDKの動作には Avatar Play のシステムが発行するアクセストークンを必要とします。アクセストークンは自社アプリの利用者(以降、エンドユーザ)の許可のもと、自社アプリに対して発行されます。発行されたアクセストークンを使うことで、自社アプリはそのエンドユーザのアバターをロードできるようになります。
アクセストークンの取得方法¶
着せ替えアプリ経由で連携済みユーザのトークンを取得する¶
着せ替えアプリ側にアカウントを持つユーザ(以降、連携済みユーザ)は、着せ替えアプリを通してアクセストークンを発行し、自社アプリへ引き渡せます。システム連携方式は、OAuth認証方式とAndroidサービス認証方式が存在します。具体的な実装方法は着せ替えアプリへのリンクを参照してください。
着せ替えアプリを通さずにゲストユーザのトークンを取得する¶
連携済みユーザのアクセストークンを確認できない場合、 InitializeAsync
呼び出し時にゲストユーザとしてのアクセストークンが発行されます。この機構により、 InitializeAsync
が成功すれば、正規またはゲストのいずれかのアバターがロードできることが保証されます。
連携済みユーザへのアップデート¶
ゲストユーザの状態で着せ替えアプリからアクセストークンを取得すると、連携済みユーザのアクセストークンへアップデートされます。このとき、ゲストユーザのアバターは破棄されます。
デバッグ用のアクセストークン¶
手動発行された固定のアクセストークンを設定することもできます。SDKのデモにおいては、固定のアバターを利用するために、アクセストークンを明示的に設定しています。
AccessToken.Set("{アクセストークン}");
デモやデバッグ用にアバターを固定させたい場合などに利用します。配布する本番アプリケーションではこの利用は許可されません。
アバターID¶
連携済みユーザであってもゲストユーザであっても、自社アプリ内でアバターを一意に特定するためのアバターIDを持っています。Unity SDK の場合、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();