示例#1
0
        void Start()
        {
            // dump custom data to log after a request completes
            FacebookManager.graphRequestCompletedEvent += result =>
            {
                Prime31.Utils.logObject(result);
            };

            // when the session opens or a reauth occurs we check the permissions to see if we can publish
            FacebookManager.sessionOpenedEvent += () =>
            {
                _hasPublishActions = FacebookBinding.getSessionPermissions().Contains("publish_actions");
            };

            FacebookManager.reauthorizationSucceededEvent += () =>
            {
                _hasPublishActions = FacebookBinding.getSessionPermissions().Contains("publish_actions");
            };

            // grab a screenshot for later use
            Application.CaptureScreenshot(screenshotFilename);

            // this is iOS 6 only!
            _canUserUseFacebookComposer = FacebookBinding.canUserUseFacebookComposer();

            // optionally enable logging of all requests that go through the Facebook class
            //Facebook.instance.debugRequests = true;
        }
示例#2
0
 void sessionOpenedEvent()
 {
     // do we need publish permissions?
     if (requiresPublishPermissions && !FacebookBinding.getSessionPermissions().Contains("publish_actions"))
     {
         FacebookBinding.reauthorizeWithPublishPermissions(new string[] { "publish_actions" }, FacebookSessionDefaultAudience.Everyone);
     }
     else
     {
         afterAuthAction();
         cleanup();
     }
 }
示例#3
0
        void OnGUI()
        {
            // center labels
            GUI.skin.label.alignment = TextAnchor.MiddleCenter;

            beginColumn();

            if (GUILayout.Button("Initialize Facebook"))
            {
                FacebookBinding.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" };
                FacebookBinding.loginWithReadPermissions(permissions);
            }


            if (GUILayout.Button("Reauth with Publish Permissions"))
            {
                var permissions = new string[] { "publish_actions" };
                FacebookBinding.reauthorizeWithPublishPermissions(permissions, FacebookSessionDefaultAudience.OnlyMe);
            }


            if (GUILayout.Button("Enable Frictionless Requests"))
            {
                FacebookBinding.enableFrictionlessRequests();
            }


            if (GUILayout.Button("Logout"))
            {
                FacebookBinding.logout();
            }


            if (GUILayout.Button("Is Session Valid?"))
            {
                bool isLoggedIn = FacebookBinding.isSessionValid();
                Debug.Log("Facebook is session valid: " + isLoggedIn);

                Facebook.instance.checkSessionValidityOnServer(isValid =>
                {
                    Debug.Log("checked session validity on server: " + isValid);
                });
            }


            if (GUILayout.Button("Get Access Token"))
            {
                var token = FacebookBinding.getAccessToken();
                Debug.Log("access token: " + token);
            }


            if (GUILayout.Button("Get Granted Permissions"))
            {
                // This way of getting permissions uses the Facebook SDK. It is not always accurate since it does not hit the FB servers
                var permissions = FacebookBinding.getSessionPermissions();
                foreach (var perm in permissions)
                {
                    Debug.Log(perm);
                }

                _hasPublishActions = permissions.Contains("publish_actions");

                // This way of getting the permissions hits Facebook's servers so it is certain to be valid.
                Facebook.instance.getSessionPermissionsOnServer((error, grantedPermissions) =>
                {
                    // check for a successful call then register if the publish_actions permissions is present
                    if (grantedPermissions != null)
                    {
                        _hasPublishActions = grantedPermissions.Contains("publish_actions");
                    }
                });
            }


            if (GUILayout.Button("Log App Event"))
            {
                var parameters = new Dictionary <string, object>
                {
                    { "someKey", 55 },
                    { "anotherKey", "string value" }
                };
                FacebookBinding.logEvent("fb_mobile_add_to_cart", parameters);
            }


            endColumn(true);


            // toggle to show two different sets of buttons
            if (toggleButtonState("Show OG Buttons"))
            {
                secondColumnButtonsGUI();
            }
            else
            {
                secondColumnAdditionalButtonsGUI();
            }
            toggleButton("Show OG Buttons", "Toggle Buttons");

            endColumn(false);


            if (bottomRightButton("Twitter..."))
            {
                Application.LoadLevel("TwitterTestScene");
            }
        }
示例#4
0
 // Gets the permissions granted to the current access token
 public static List <object> getSessionPermissions()
 {
     return(FB.getSessionPermissions());
 }