Skip to content

アクセストークン

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();


最終更新日: 2020-03-19