private void DoTwitterLogin(HttpContext context, string returnUrl)
        {
            if (TwitterConsumer.IsTwitterConsumerConfigured)
            {
                var token = context.Request["oauth_token"];
                if (string.IsNullOrEmpty(token))
                {
                    var request = TwitterConsumer.StartSignInWithTwitter(false);
                    request.Send();
                }
                else
                {
                    string screenName;
                    int    userId;
                    string accessToken;
                    if (TwitterConsumer.TryFinishSignInWithTwitter(out screenName, out userId, out accessToken))
                    {
                        //Sucess. Get information
                        var info    = TwitterConsumer.GetUserInfo(userId, accessToken);
                        var profile = UniversalProfile.ProfileFromTwitter(info);

                        RedirectToReturnUrl(context, returnUrl, profile);
                    }
                    else
                    {
                        RedirectToReturnUrl(context, returnUrl, UniversalProfile.FromError(new Exception("Login failed")));
                    }
                }
            }
        }
예제 #2
0
        public LoginProfile ProcessAuthoriztion(HttpContext context, IDictionary <string, string> @params)
        {
            var token = context.Request["oauth_token"];

            if (string.IsNullOrEmpty(token))
            {
                var request = TwitterConsumer.StartSignInWithTwitter(TwitterSignIn, false);
                request.Send();
            }
            else
            {
                string screenName;
                int    userId;
                string accessToken;
                if (TwitterConsumer.TryFinishSignInWithTwitter(TwitterSignIn, out screenName, out userId, out accessToken))
                {
                    //Sucess. Get information
                    var info    = TwitterConsumer.GetUserInfo(TwitterSignIn, userId, accessToken);
                    var profile = ProfileFromTwitter(info);
                    return(profile);
                }
                return(LoginProfile.FromError(new Exception("Login failed")));
            }


            return(null);
        }
        /// <summary>
        /// Loads specified user information
        /// </summary>
        /// <param name="userID">Twitter user ID</param>
        /// <returns>TwitterUserInfo obect</returns>
        public TwitterUserInfo LoadUserInfo(decimal userID)
        {
            var userInfo = TwitterConsumer.GetUserInfo(TwitterSignIn, (int)userID, String.Empty, _apiInfo.AccessToken);

            if (userInfo == null)
            {
                return(new TwitterUserInfo());
            }

            return(new TwitterUserInfo
            {
                UserID = userInfo.Value <Decimal>("id"),
                Description = userInfo.Value <String>("description"),
                ScreenName = userInfo.Value <String>("screen_name"),
                SmallImageUrl = userInfo.Value <String>("profile_image_url"),
                UserName = userInfo.Value <String>("name")
            });
        }
        /// <summary>
        /// Gets url of User image
        /// </summary>
        /// <param name="userScreenName"></param>
        /// <exception cref="TwitterDataProvider.Exceptions.ResourceNotFoundException">ResourceNotFoundException</exception>
        /// <exception cref="TwitterDataProvider.Exceptions.InternalProviderException">InternalProviderException</exception>
        /// <returns>Url of image or null if resource does not exist</returns>
        public string GetUrlOfUserImage(string userScreenName, ImageSize imageSize)
        {
            var userInfo = TwitterConsumer.GetUserInfo(TwitterSignIn, 0, userScreenName, _apiInfo.AccessToken);

            if (userInfo == null)
            {
                return(null);
            }

            var profileImageUrl = userInfo.Value <String>("profile_image_url");

            var size = GetTwitterImageSizeText(imageSize);

            if (size == "original")
            {
                profileImageUrl = profileImageUrl.Replace("_normal", String.Empty);
            }

            return(profileImageUrl);
        }