Photon Facebook Authentication
伺服器端
Facebook應用程序的設置
首先,我們需要創建一個Facebook應用程序,如果您還沒有。
- 進入Facebook開發者網站。
- 點擊 Apps -> Create a New App ,輸入您的應用程序的名稱,然後按 Create App 按鈕。
- 選擇 Apps -> [your_app] 並復制 App ID 和 App Secret。
Photon配置
通過您的Photon Cloud Dashboard進入您的應用程序的Details頁面。
展開自定義認証部分。
Facebook認証的Authentication URL是由Exit Games設置的。
設置這兩個參數的值:
- appid = your Facebook App ID
- secret = your Facebook App Secret
儲存更改。
客戶端代碼
客戶端需要設置正確的認証類型(Facebook,2),並發送一個有效的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