This document is about: PUN 1
SWITCH TO

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

Facebook認証

概要

このチュートリアルではFacebookのカスタム認証を使ってPhoton Unity Networking (PUN)(~~~/getting-started/pun-intro) プロジェクトを作成します。

 

Facebookアプリケーションの設定

まず、Facebookアプリケーションを作成する必要があります。

  • Facebook Developersウェブサイトに進みます。
  • Appsをクリックして->Create a New Appに進みます。その後、アプリケーション名を入力してCreate Appボタンを押します。
  • Appsを選択し -> *[your_app]*に進んでApp IDApp Secretをコピーします。

 

Photonダッシュボードの設定

  • Photonダッシュボードを開きます。
  • 使用するAppIDを選択し、詳細を参照をクリックします。
  • 認証タブに進み、独立して構成されたプロバイダーに対して、匿名クライアントの接続を許可するのチェックを外してください。
  • Facebook認証プロバイダを選択して、 AppID秘密をペーストしてください。
  • 利用不可の場合、すべてのクライアントを拒否するにチェックを入れてください。*

 

PUNの設定

 

実装

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 Authenticationを使用するには、以下を追加します:

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

まとめ

このチュートリアルではFacebook APIとPUNの統合に必要となる基本的なステップを説明しました。
ご不明な点がありましたらフォーラムからお問い合わせください。

Back to top