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 構成
- "deploy\NameServer\bin\NameServer.xml.config"を開きます。
- CustomAuthが有効になっていることを確認します。Enabledはtrueである必要があります。
- 必要に応じて、AllowAnonymousをtrueまたはfalseに設定します。
falseに設定することをお勧めします。 - AuthenticationTypeをFacebook認証プロバイダータイプのコードである "2"に設定します。
- 任意の名前を選択します。この例では「Facebook」を使用しましたが、変更できます。
- 「AuthUrl」は必須なので空のままにしますが、認証エンドポイントは内部にあるため必要ありません。
- AppIdとSecretを、Facebook開発者ポータルから取得したFacebookアプリの値に設定します。
XML
<CustomAuth Enabled="true" AllowAnonymous="false">
<AuthProviders>
<AuthProvider Name="Facebook"
AuthenticationType="2"
AuthUrl=""
Secret="Val1"
AppId="Val2" />
</AuthProviders>
</CustomAuth>
クライアントコード
クライアントは正しい認証タイプ(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