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 IDとApp 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