This document is about: PUN 2
SWITCH TO

PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

Photon Facebook認証

サーバー側

Facebookアプリの設定

まず、Facebookアプリケーションがない場合は作成してください。

  • [Facebook Developers](https://developers.facebook.com)ウェブサイトにアクセスします。
  • Apps-> Create a New App をクリックし、アプリの名前を入力して Create App ボタンを押します。
  • Apps-> *[your_app]*を選択し、App IDApp Secretをコピーします。

Photon 構成

Photon Cloud ダッシュボードから、アプリケーションの詳細ページを開きます。
カスタム認証セクションを開きます。
Exit GamesがFacebook認証用の認証URLを設定します。

以下2つのパラメータについて、値を設定してください:

  • appid = 自分のFacebook AppのID
  • secret = 自分のFacebook Appのシークレット

Save changes.変更を保存します

クライアントコード

クライアントは正しい認証タイプ(Facebook、2)を設定し、「token」という名前のクエリ文字列パラメーターとして有効なFacebookトークンを送信する必要があります。

PUN

  • Unityを開きます。
  • インポート
  • PUNを設定
  • Facebook SDK for Unityをインポートします。
  • Unityのメインメニューで Facebook -> Edit Settings に移動し、Facebookアプリケーションの App Name および App Id を入力します。

実装

新しいMonoBehaviourを作成し、シーン上のオブジェクトにアタッチしてから開きます。
Facebookの初期化とログインに次のコードを使用します。

C#

// Include Facebook namespace
using Facebook.Unity;

// [..]

private void Awake()
{
    if (!FB.IsInitialized)
    {
        // Initialize the Facebook SDK
        FB.Init(InitCallback);
    }
    else
    {
        FacebookLogin();
    }
}

private void InitCallback()
{
    if (FB.IsInitialized)
    {
        FacebookLogin();
    }
    else
    {
        Debug.Log("Failed to initialize the Facebook SDK");
    }
}

private void FacebookLogin()
{
    if (FB.IsLoggedIn)
    {
        OnFacebookLoggedIn();
    }
    else
    {
        var perms = new List<string>(){"public_profile", "email", "user_friends"};
        FB.LogInWithReadPermissions(perms, AuthCallback);
    }
}

private void AuthCallback(ILoginResult result)
{
    if (FB.IsLoggedIn)
    {
        OnFacebookLoggedIn();
    }
    else
    {
        Debug.LogErrorFormat("Error in Facebook login {0}", result.Error);
    }
}

PUNでFacebook認証を使用するには、以下を追加します。

C#

private void OnFacebookLoggedIn()
{
    // AccessToken class will have session details
    string aToken = AccessToken.CurrentAccessToken.TokenString;
    string facebookId = AccessToken.CurrentAccessToken.UserId;
    PhotonNetwork.AuthValues = new AuthenticationValues();
    PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Facebook;
    PhotonNetwork.AuthValues.UserId = facebookId; // alternatively set by server
    PhotonNetwork.AuthValues.AddAuthParameter("token", aToken);
    PhotonNetwork.ConnectUsingSettings("1.0");
}

実装できる成功とエラーのPUNコールバックは次のとおりです。

C#

public class FacebookAuthTest : MonoBehaviourPunCallbacks
{
    public override void OnConnectedToMaster()
    {
        Debug.Log("Successfully connected to Photon!");
    }

    // something went wrong
    public override void OnCustomAuthenticationFailed(string debugMessage)
    {
        Debug.LogErrorFormat("Error authenticating to Photon using facebook: {0}", debugMessage);
    }
}

Back to top