//============================================================================= public void OnButtonPressed_RegisterWithFacebook() { #if (UNITY_IPHONE || UNITY_ANDROID) && !UNITY_EDITOR // Attempt to register bool isSessionValid = FacebookCombo.isSessionValid(); if (isSessionValid == false) { // If no internet is present go to error message if (Application.internetReachability == NetworkReachability.NotReachable) { m_txtFacebookErrorMessage.text = TextManager.GetText("ERROR_NO_INTERNET"); m_CurrentStage = eRegistrationStage.FacebookLoginFailure; } else { string[] permissions = new string[] { "email" }; FacebookCombo.loginWithReadPermissions(permissions); m_bIsLoggingIn = true; //m_CurrentStage = eRegistrationStage.FacebookRegistering; Debug.Log("FairyRegistrationManager: Register->Log Into FB"); } } else { // Already logged in, get user info and friend info m_CurrentStage = eRegistrationStage.FacebookRegisteringGetUserInfo; GetFacebookUserInfo(); Debug.Log("FairyRegistrationManager: Register->Session Valid,success"); } #else if (UnityEngine.Random.Range(0, 100) < 25) { m_CurrentStage = eRegistrationStage.FacebookRegisteringGetUserInfo; GetFacebookUserInfo(); } else { m_CurrentStage = eRegistrationStage.FacebookRegistering; } #endif }
public void OnButtonPressed_Facebook() { #if UNITY_IPHONE || UNITY_ANDROID if (m_bIsWaitingForFacebookLogin || m_bIsWaitingForTwitterLogin || m_bIsWaitingForTwitterShare) { return; } //If it's not valid you can't post - try logging in using this code and then checking session valid again. bool isLoggedIn = FacebookCombo.isSessionValid(); if (!isLoggedIn) { m_bIsWaitingForFacebookLogin = true; string[] permissions = new string[] { "email" }; FacebookCombo.loginWithReadPermissions(permissions); } else { ShareWithFacebook(); } #endif }
//===================================================== public void Update() { m_Timer += Time.deltaTime; if (m_Timer > 0.2f) { if ((AchievementsManager.m_Instance != null) && (m_bScoresDownloaded == false)) { AchievementsManager.m_Instance.GetScoreboard(AchievementsManager.eScoreTime.AllTime, 1, 100); m_bScoresDownloaded = true; } } #if UNITY_IPHONE || UNITY_ANDROID if (m_bIsWaitingForFacebookLogin) { if (FacebookCombo.isSessionValid()) { m_bIsWaitingForFacebookLogin = false; ShareWithFacebook(); } } #endif }
void OnGUI() { // center labels GUI.skin.label.alignment = TextAnchor.MiddleCenter; beginColumn(); if (GUILayout.Button("Initialize Facebook")) { FacebookCombo.init(); } if (GUILayout.Button("Login")) { // Note: requesting publish permissions here will result in a crash. Only read permissions are permitted. var permissions = new string[] { "email" }; FacebookCombo.loginWithReadPermissions(permissions); } if (GUILayout.Button("Reauth with Publish Permissions")) { var permissions = new string[] { "publish_actions", "publish_stream" }; FacebookCombo.reauthorizeWithPublishPermissions(permissions, FacebookSessionDefaultAudience.OnlyMe); } if (GUILayout.Button("Logout")) { FacebookCombo.logout(); } if (GUILayout.Button("Is Session Valid?")) { // isSessionValid only checks the local session so if a user deauthorizies the application on Facebook's website it can be incorrect var isLoggedIn = FacebookCombo.isSessionValid(); Debug.Log("Facebook is session valid: " + isLoggedIn); // This way of checking a session hits Facebook's servers ensuring the session really is valid Facebook.instance.checkSessionValidityOnServer(isValid => { Debug.Log("checked session validity on server. Is it valid? " + isValid); }); } if (GUILayout.Button("Get Access Token")) { var token = FacebookCombo.getAccessToken(); Debug.Log("access token: " + token); } if (GUILayout.Button("Get Granted Permissions")) { // This way of getting session permissions uses Facebook's SDK which is a local cache. It can be wrong for various reasons. var permissions = FacebookCombo.getSessionPermissions(); foreach (var perm in permissions) { Debug.Log(perm); } // This way of getting the permissions hits Facebook's servers so it is certain to be valid. Facebook.instance.getSessionPermissionsOnServer(completionHandler); } if (GUILayout.Button("Show Share Dialog")) { var parameters = new Dictionary <string, object> { { "link", "http://prime31.com" }, { "name", "link name goes here" }, { "picture", "http://prime31.com/assets/images/prime31logo.png" }, { "caption", "the caption for the image is here" }, { "description", "description of what this share dialog is all about" } }; FacebookCombo.showFacebookShareDialog(parameters); } endColumn(true); secondColumnButtonsGUI(); endColumn(false); if (bottomRightButton("Twitter...")) { Application.LoadLevel("TwitterCombo"); } }
//===================================================== public void Update() { // Show current page foreach (eRegistrationStage Stage in Enum.GetValues(typeof(eRegistrationStage))) { if (m_Pages[(int)Stage] != null) { if (Stage == m_CurrentStage) { m_Pages[(int)Stage].SetActive(true); } else { m_Pages[(int)Stage].SetActive(false); } } } // Run logic for current page switch (m_CurrentStage) { case eRegistrationStage.FacebookConfirmation: case eRegistrationStage.ChooseRegistrationMethod: { #if (UNITY_IPHONE || UNITY_ANDROID) && !UNITY_EDITOR // Session now valid? bool isSessionValid = FacebookCombo.isSessionValid(); if ((isSessionValid == true) && (m_bIsLoggingIn == true)) { //string token = FacebookCombo.getAccessToken(); Debug.Log("FairyRegistrationManager: Update->SessionValid"); m_CurrentStage = eRegistrationStage.FacebookRegisteringGetUserInfo; m_bIsLoggingIn = false; GetFacebookUserInfo(); } #endif } break; case eRegistrationStage.ChooseFairyName: { } break; case eRegistrationStage.FacebookRegistering: { #if UNITY_EDITOR if (UnityEngine.Random.Range(0, 200) < 2) { m_CurrentStage = eRegistrationStage.FacebookRegisteringGetUserInfo; GetFacebookUserInfo(); } #endif } break; case eRegistrationStage.FacebookRegisteringSuccess: { m_txtFacebookName.text = m_InProgressPlayerName; m_txtFacebookID.text = m_InProgressPlayerID; } break; case eRegistrationStage.FacebookRegisteringFailure: break; case eRegistrationStage.RegisteringFairy: break; case eRegistrationStage.RegisteringFairySuccess: break; case eRegistrationStage.RegisteringFairyFailure: break; case eRegistrationStage.FacebookRegisteringGetUserInfo: break; case eRegistrationStage.FindingPreviousFairies: break; case eRegistrationStage.PickPreviousFairy: break; case eRegistrationStage.RestoringPreviousFairy: break; case eRegistrationStage.RestoringPreviousFairySuccess: break; case eRegistrationStage.RestoringPreviousFairyFailure: break; case eRegistrationStage.FacebookLoginFailure: break; } }