예제 #1
0
    private void handleFacebookUser(string sessionKey, string userId)
    {
        log.Debug("Handling facebook user", userId);

        facebookApi = new FacebookAPI();

        facebookApi.IsDesktopApplication = false;
        facebookApi.ApplicationKey       = apikey;
        facebookApi.Secret = apisecret;

        facebookApi.SessionKey = sessionKey;
        facebookApi.UserId     = userId;

        facebookApi.ConnectToFacebook();

        FacebookId = facebookApi.GetLoggedInUser();
        Collection <Facebook.Entity.User> fb_users = facebookApi.GetUserInfo(facebook_id);

        log.Debug("Got Facebook users fb_users", fb_users);
        fb_user = fb_users[0];
        log.Debug("Facebook user fb_user", fb_user);

        IRecordList <DreamFolk> dreamFolk = DataProvider.LoadList <DreamFolk>(new FilterInfo("FacebookId", FacebookId));

        log.Debug("Got dreamFolk folk with FacebookId", FacebookId, dreamFolk);

        DreamFolk dreamPerson = null;

        if (dreamFolk.Count > 0)
        {
            dreamPerson = dreamFolk[0];
        }

        if (dreamPerson == null)
        {
            log.Warn("Creating new dreamPerson from Main.Current");
            dreamPerson = new DreamFolk(Main.Current.FbUser);
            dreamPerson.Save(true);
        }

        /*
         * else if ( dreamPerson.Birthday != Main.Current.FbUser.Birthday )
         * {
         *      log.Warn("Updating birthday dreamPerson from Main.Current");
         *      dreamPerson.Birthday = (DateTime)Main.Current.FbUser.Birthday;
         *      dreamPerson.Save(true);
         * }
         * else if ( !dreamPerson.Updated )
         */
        else
        {
            log.Warn("Updating dreamPerson");
            dreamPerson.update(fb_user);
            dreamPerson.Updated = true;
            dreamPerson.Save(true);
        }

        CurrentDreamFriend = dreamPerson;
        Now.Friends        = CurrentDreamFriend.Friends;
    }
예제 #2
0
        public void Evaluate(int SpreadMax)
        {
            if (this.FPinInAppKey.PinIsChanged || this.FPinInSecret.PinIsChanged)
            {
                this.ClearAPI();
                string appkey;
                string appsec;

                this.FPinInAppKey.GetString(0, out appkey);
                this.FPinInSecret.GetString(0, out appsec);

                if (appkey != "" && appsec != "")
                {
                    api.ApplicationKey       = appkey;
                    api.IsDesktopApplication = true;
                    api.Secret = appsec;
                    api.ConnectToFacebook();

                    this.FInvalidate = true;
                }
            }

            if (this.FInvalidate)
            {
                IList <string> frids = api.GetFriendIds();
                this.FPinOutFriends.SliceCount = frids.Count;
                for (int i = 0; i < frids.Count; i++)
                {
                    this.FPinOutFriends.SetString(i, frids[i]);
                }

                IList <Group> grpids = api.GetGroups();
                this.FPinOutGroups.SliceCount = grpids.Count;
                for (int i = 0; i < grpids.Count; i++)
                {
                    this.FPinOutGroups.SetString(i, grpids[i].GroupId);
                }


                this.FInvalidate = false;
            }
        }
예제 #3
0
        /// <summary>
        /// Displays Facebook login dialog
        /// </summary>
        /// <param name="forceLogin">Force login</param>
        /// <returns>True if login succeeded, false if failed.</returns>
        private bool FacebookLogin(bool forceLogin)
        {
            bool retVal = false;

            try
            {
                // If connection to Facebook was successfull
                if (_fbApi.ConnectToFacebook(forceLogin))
                {
                    retVal = true;

                    if (!_fbApi.SessionExpires)
                    {
                        // If session doesn't expire and connect was successfull, store session info in settings file
                        try
                        {
                            CommonFunctions.SetSetting("Facebook_AccessToken", _fbApi.AccessToken);
                        }
                        catch (UnauthorizedAccessException)
                        {
                            _host.MediaCenterEnvironment.Dialog("Offline access data could not be stored in registry. Check that you have permissions to registry.",
                                                                AppName, DialogButtons.Ok, 10, false);
                        }
                    }
                }
                else
                {
                    _host.MediaCenterEnvironment.Dialog("Facebook login failed.", AppName, DialogButtons.Ok, 10, true);
                }
            }
            catch (Facebook.Exceptions.FacebookInvalidUserException)
            {
                _host.MediaCenterEnvironment.Dialog("Facebook login failed, invalid user.", AppName, DialogButtons.Ok, 10, true);
            }
            catch (Exception)
            {
                _host.MediaCenterEnvironment.Dialog("Error occurred while logging into Facebook.", AppName, DialogButtons.Ok, 10, true);
            }

            return(retVal);
        }
예제 #4
0
    private void handleFacebookUser(string sessionKey, string userId )
    {
        log.Debug("Handling facebook user",userId);

            facebookApi = new FacebookAPI();

            facebookApi.IsDesktopApplication = false;
            facebookApi.ApplicationKey = apikey;
            facebookApi.Secret = apisecret;

            facebookApi.SessionKey = sessionKey;
            facebookApi.UserId = userId;

            facebookApi.ConnectToFacebook();

            FacebookId = facebookApi.GetLoggedInUser();
            Collection<Facebook.Entity.User> fb_users = facebookApi.GetUserInfo(facebook_id);
            log.Debug("Got Facebook users fb_users",fb_users);
            fb_user = fb_users[0];
            log.Debug("Facebook user fb_user",fb_user);

            IRecordList<DreamFolk> dreamFolk = DataProvider.LoadList<DreamFolk>(new FilterInfo("FacebookId",FacebookId));
            log.Debug("Got dreamFolk folk with FacebookId",FacebookId,dreamFolk);

            DreamFolk dreamPerson = null;
            if ( dreamFolk.Count > 0 ) dreamPerson = dreamFolk[0];

            if ( dreamPerson == null )
            {
                log.Warn("Creating new dreamPerson from Main.Current");
                dreamPerson = new DreamFolk(Main.Current.FbUser);
                dreamPerson.Save(true);
            }
            /*
            else if ( dreamPerson.Birthday != Main.Current.FbUser.Birthday )
            {
                log.Warn("Updating birthday dreamPerson from Main.Current");
                dreamPerson.Birthday = (DateTime)Main.Current.FbUser.Birthday;
                dreamPerson.Save(true);
            }
            else if ( !dreamPerson.Updated )
            */
            else
            {
                log.Warn("Updating dreamPerson");
                dreamPerson.update(fb_user);
                dreamPerson.Updated = true;
                dreamPerson.Save(true);
            }

            CurrentDreamFriend = dreamPerson;
            Now.Friends = CurrentDreamFriend.Friends;
    }