PUN Classic(PUN1とも呼ばれます)はPUNのはじめの主要バージョンです。         現在は、リファクタリングおよび機能拡張されたPUN2に切り替わっています。         新しいプロジェクトはPUN2をご利用いただき、また可能であれば既存のプロジェクトについてもPUN1からPUN2へ移行していただくよう強く推奨しています。 こちらをご参照ください: "移行情報". PUN Cloassicは今後数か月メンテナンスされます。       重要なバグの修正や新しいUnityバージョンのサポートは行いますが、新機能の追加はPUN2のみとなります。

Facebook認証

Contents

概要

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

  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秘密をペーストしてください。
  • 利用不可の場合、すべてのクライアントを拒否するにチェックを入れてください。 Photon Dashboardを開いて使用する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コールバックの成否を実装するには、以下を追加します:

// if AutoJoinLobby is false
private void OnConnectedToMaster()
{
    Debug.Log("Successfully connected to Photon!");
}

// if AutoJoinLobby is true
private void OnJoinedLobby()
{
    Debug.Log("Successfully connected to Photon and joined to a lobby!");
}

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

Back To Top

まとめ

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

ドキュメントのトップへ戻る