Ejemplo n.º 1
0
        public ActionResult TwitterCallback(string oauth_token, string oauth_verifier)
        {
            if (!CheckLogin())
            {
                return(RedirectToAction("Login", "Account"));
            }
            //Get the user's ID
            string uid = GetUserID();
            //Get ASP.NET User Object
            ApplicationUser currentUser = GetUser(uid);
            //Get the LPUser based on ASP.NET User's e-mail
            LPUser lpCurrentUser = GetLPUser((string)currentUser.Email);


            var requestToken = new OAuthRequestToken {
                Token = oauth_token
            };
            string  Key         = System.Configuration.ConfigurationManager.AppSettings["twKey"];
            string  Secret      = System.Configuration.ConfigurationManager.AppSettings["twSecret"];
            Twitter twitterUser = new Twitter {
            };

            try
            {
                TwitterService   service     = new TwitterService(Key, Secret);
                OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier);
                service.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);
                VerifyCredentialsOptions option = new VerifyCredentialsOptions();
                TwitterUser user = service.VerifyCredentials(option);

                TempData["Token"]   = oauth_token;
                TempData["VToken"]  = oauth_verifier;
                TempData["UserTag"] = user.ScreenName;
                TempData["Name"]    = user.Name;
                TempData["Userpic"] = user.ProfileImageUrl;

                int    TwID    = lpCurrentUser.UserID;
                var    Token   = oauth_token;
                var    VToken  = oauth_verifier;
                String TwName  = user.ScreenName;
                String TagName = user.Name;
                twitterUser.UserID   = lpCurrentUser.UserID;
                twitterUser.TwName   = TwName;
                twitterUser.TwTag    = TagName;
                twitterUser.TwOauth  = Token;
                twitterUser.TwVOauth = VToken;
                twitterUser.Date     = DateTime.Now;
                twitterUser.EndDate  = DateTime.Now.AddMinutes(60);
                repository.Add(twitterUser);
                repository.Save();
                return(RedirectToAction("Settings/" + lpCurrentUser.UserID));
            }
            catch
            {
                throw new System.InvalidOperationException("Twitter didnt like it");
            }
        }