Example #1
0
        public FacebookUser(dynamic me, dynamic friends)
        {
            Name = me.name;
            Id = me.id;
            ImageUrl = me.picture.data.url;
            Installed = me.installed ?? false;
            Friends = new List<FacebookUser>();

            var friendlist = friends;
            foreach (var friend in friendlist)
            {
                FacebookUser user = new FacebookUser(friend);

                if (user.Installed)
                {
                    Friends.Add(user);
                }
            }
        }
Example #2
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var isAuthorized = base.AuthorizeCore(httpContext);
            if (!isAuthorized)
            {
                return false;
            }

            string accessToken = null;
            FacebookUser me = null;

            try {
                // Check session for access token
                if (httpContext.Session["access_token"] != null){
                    accessToken = httpContext.Session["access_token"].ToString();
                } else {
                    // Check identity for access token
                        //Get the current claims principal
                        var identity = (ClaimsPrincipal)System.Threading.Thread.CurrentPrincipal;
                        var claims = identity.Claims;
                        // Access claims
                        foreach (Claim claim in claims)
                        {
                            if (claim.Type == "FacebookAccessToken")
                            {
                                accessToken = claim.Value;
                            }
                        }
                }

                if (accessToken == null)
                {
                    return false;
                }
                // End access token section

                // Check session for Me
                if ((FacebookUser)httpContext.Session["me"] != null){
                    me = (FacebookUser)httpContext.Session["me"];
                } else {
                    // Get new Facebook data with access token
                    Facebook.FacebookClient facebook = new Facebook.FacebookClient(accessToken.ToString());
                    dynamic RawMe = facebook.Get("me?fields=name,picture.type(square)");
                    dynamic RawFriends = facebook.Get("me/friends?fields=name,picture.type(square),installed");

                    // Use Raw Data to populate helpful objects
                    me = new FacebookUser(RawMe, RawFriends.data);

                    // Put Me in session
                    httpContext.Session["me"] = me;
                }
                // End Me section
            }
            catch (Exception e) {
                return false;
            }

            if (me != null)
            {
                me = null;
                return true;
            }
            else
            {
                return false;
            }
        }