PUN Classic (also called PUN1) is the original and first major version of PUN. It is now replaced by PUN2 which is refactored and enhanced. We highly recommend starting new projects with PUN2 and if possible migrating existing ones from PUN1 to PUN2 by following our "Migration Notes". PUN Classic will be maintained for the coming months. We will fix important bugs and support new Unity versions but new features will be added only to PUN2.

Facebook認証

Contents

概要

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

  Back To Top

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

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

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

  Back To Top

Photonダッシュボードの設定

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

  Back To Top

PUNの設定

  Back To Top

実装

MonoBehaviourを作成し、シーン上のオブジェクトに添付して開きます。 Facebookの初期化とログインには、以下のコードを使用してください。

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

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コールバックの成否を実装するには、以下を追加します:

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

まとめ

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

To Document Top