PhotonのVIVEPORT認証
概要
VIVEPORTは簡単にPhotonの認証プロバイダとして追加できます。
必要なものは、VIVEPORT AppIDとVIVEPORT AppSecretです。VIVEPORTコンテンツチーム(store@viveport.com)と連絡を取ってAppSecretを申請してください。このステップは自動化されていないので、申請は前もって行っておく必要があります。
アプリケーション設定
まずはじめに、 PhotonアプリケーションのダッシュボードでVIVEPORT認証を設定しておきます。
アプリケーションの「管理」ページで画面を下にスクロールし「認証」セクションを表示します。1クリックで「HTC VIVE」認証のプロバイダの追加・編集ができます。以下の2つを用意してください。
- appid: お持ちのVIVEPORTアプリケーションのID
- appsecret: お持ちのVIVEPORTアプリケーションのSecret
VIVEPORT AppIdはVIVEPORTディベロッパーコンソールで取得します。アプリケーションを選択して「VIVEPORT Listing」ページを開きます。AppSecretの申請はVIVEPORTコンテンツチームと連絡をとってください。
クライアントコード
PhotonはVIVEPORTのユーザーを、 VIVEPORT APIより提供される一時トークンで認証します。
VIVEPORT SDKをダウンロードして、Unityパッケージをzipからプロジェクトにインポートします。
VIVEPORTトークンを取得する
Photonに接続する前に、クライアントはVIVEPORTにログインしてセッショントークンを取得する必要があります。
以下のワークフローは、必須手順のまとめです。コード全体はVIVEPORT SDK内のVIVEPORTDemo.csでご覧ください。
VIVEPORTではよくあることですが、まずはじめにVIVEPORT AppIdを使ってAPIの初期化を行います。
C#
//...
Api.Init(InitStatusHandler, APP_ID);
//...
private static void InitStatusHandler(int nResult)
{
if (nResult == 0)
{
bInit = true;
bIsReady = false;
ViveSessionToken = string.Empty;
bArcadeIsReady = false;
Viveport.Core.Logger.Log("InitStatusHandler is successful");
}
else
{
// Init error, close your app and make sure your app ID is correct or not.
bInit = false;
Viveport.Core.Logger.Log("InitStatusHandler error : " + nResult);
}
}
//...
初期化(例: InitStatusHandler())をしたら、トークンの準備ができているか確認します。以下のようにViveport.Token.IsReady
を呼び出します。
C#
//...
Token.IsReady(IsTokenReadyHandler);
//...
private static void IsTokenReadyHandler(int nResult)
{
if (nResult == 0)
{
bTokenIsReady = true;
Viveport.Core.Logger.Log("IsTokenReadyHandler is successful");
}
else
{
bTokenIsReady = false;
Viveport.Core.Logger.Log("IsTokenReadyHandler error: " + nResult);
}
}
//...
これで、クライアントがセッショントークンを取得できるようになりました。有効なVIVEPORTユーザーの証しとなります。
C#
//...
Token.GetSessionToken(GetSessionTokenHandler);
//...
private static void GetSessionTokenHandler(int nResult, string message)
{
if (nResult == 0)
{
Viveport.Core.Logger.Log("GetSessionTokenHandler is successful, token:" + message);
// Photon:
// With the viveport token, we can set the auth values for Photon and connect / auth.
// We store the token for later use.
ViveSessionToken = message;
}
else
{
if (message.Length != 0)
{
Viveport.Core.Logger.Log("GetSessionTokenHandler error: " + nResult + ", message:" + message);
}
else
{
Viveport.Core.Logger.Log("GetSessionTokenHandler error: " + nResult);
}
}
}
認証
ViveSessionTokenはPhotonのVIVEPORT認証に必要な唯一の値です。
必ずCustomAuthenticationType.Viveport
を使用し、「userToken」にAuthParameterを設定してください。
C#
//...
if (PhotonNetwork.AuthValues == null)
{
PhotonNetwork.AuthValues = new AuthenticationValues();
}
PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Viveport;
PhotonNetwork.AuthValues.AddAuthParameter("userToken", ViveSessionToken);
// do not set AuthValues.Token or authentication will fail
if (!PhotonNetwork.ConnectUsingSettings())
{
Debug.LogWarning("Could not PhotonNetwork.ConnectUsingSettings(). Check settings.");
}
//...
Back to top