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 IDとApp Secretをコピーします。
Photonダッシュボードの設定
- Photonダッシュボードを開きます。
- 使用するAppIDを選択し、詳細を参照をクリックします。
- 認証タブに進み、独立して構成されたプロバイダーに対して、匿名クライアントの接続を許可するのチェックを外してください。
- Facebook認証プロバイダを選択して、 AppIDと秘密をペーストしてください。
- 利用不可の場合、すべてのクライアントを拒否するにチェックを入れてください。*
PUNの設定
- Unityを開きます。
- インポートをおこないます。
- PUNを設定します。
- Unity対応のFacebook SDKをインポートします。
- 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 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の統合に必要となる基本的なステップを説明しました。
ご不明な点がありましたらフォーラムからお問い合わせください。