Ejemplo n.º 1
0
        public void Setup()
        {
            Initialise();

            _webRequest = new Mock <HttpWebRequest>();
            TwitterApiRequestFactory
            .Setup(x => x.CreateLoginRequest())
            .Returns(_webRequest.Object);

            _requestStream = new MemoryStream();
            HttpWebRequestHelper
            .Setup(x => x.GetRequestStream(_webRequest.Object))
            .Returns(Task.FromResult(_requestStream));

            _webResponse = new Mock <HttpWebResponse>();
            HttpWebRequestHelper
            .Setup(x => x.GetResponse(_webRequest.Object))
            .Returns(Task.FromResult(_webResponse.Object));

            _authenticationResult = TwitterAuthenticationBuilder.Build.AnInstance();
            ObjectSerializer
            .Setup(x => x.DeserializeJson <TwitterAuthentication>(_webResponse.Object))
            .Returns(_authenticationResult);

            _result = TwitterApiAdapter.Login().Result;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Checks or creates a twitter based login.
        /// </summary>
        /// <param name="authentication"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public RegisteredUser AuthenticateTwitterAccount(TwitterAuthentication authentication, string userName, int twitterId)
        {
            //see if there is alraedy an account.
            RegisteredUser returnedUser = _userDao.GetUserByUserName(userName);

            //check if its new
            if (returnedUser == null)
            {
                //save the user details
                returnedUser = new RegisteredUser()
                {
                    AuthDetails = authentication,
                    UserName    = userName,
                    TwitterId   = twitterId
                };
                IUserDetailsService userDetailsService = ServiceLayer.UserDetailsService;
                userDetailsService.CreateUser(returnedUser);

                //setup the indexing of their tweets
                IIndexQueuerService indexQueuerService = ServiceLayer.IndexQueuerService;
                indexQueuerService.QueueUserStreamIndex(returnedUser);
            }
            else
            {
                //make sure the tokens match
                if (!returnedUser.AuthDetails.AccessToken.Equals(authentication.AccessToken))
                {
                    return(null);
                }
            }

            return(returnedUser);
        }
        public async Task <TweetCollection> Search(string query, TwitterAuthentication authentication)
        {
            var request     = _twitterApiRequestFactory.CreateSearchTweetRequest(query, authentication);
            var webResponse = await _webRequestHelper.GetResponse(request);

            return(_objectSerializer.DeserializeJson <TweetCollection>(webResponse));
        }
Ejemplo n.º 4
0
        public HttpWebRequest CreateSearchTweetRequest(string query, TwitterAuthentication authentication)
        {
            var request = WebRequest.Create("https://api.twitter.com/1.1/search/tweets.json?q=" + WebUtility.UrlEncode(query)) as HttpWebRequest;

            request.Method = "GET";
            request.Headers["Authorization"] = "Bearer " + authentication.access_token;
            return(request);
        }
        public void Setup()
        {
            Initialise();

            _query = "some text";
            _twitterAuthorisation = TwitterAuthenticationBuilder.Build.AnInstance();

            _result = TwitterApiRequestFactory.CreateSearchTweetRequest(_query, _twitterAuthorisation);
        }
Ejemplo n.º 6
0
        // This URL is registered as the application's callback at http://dev.twitter.com
        public ActionResult AuthorizeCallback(string oauth_token, string oauth_verifier)
        {
            var requestToken = new OAuthRequestToken {
                Token = oauth_token
            };

            // Step 3 - Exchange the Request Token for an Access Token
            TwitterService   service     = new TwitterService(AuthenticationTokens.TwitterConsumerKey, AuthenticationTokens.TwitterConsumerSecret);
            OAuthAccessToken accessToken = service.GetAccessToken(requestToken, oauth_verifier);


            //Store the access token and secret and create a new user account
            TwitterAuthentication authentication = new TwitterAuthentication()
            {
                AccessToken       = accessToken.Token,
                AccessTokenSecret = accessToken.TokenSecret
            };


            //Authenticate account with twitter
            service.AuthenticateWith(AuthenticationTokens.TwitterConsumerKey,
                                     AuthenticationTokens.TwitterConsumerSecret,
                                     authentication.AccessToken, authentication.AccessTokenSecret);

            TwitterUser twitterUser = service.VerifyCredentials();


            ServiceLayer.UserDetailsService.AuthenticateTwitterAccount(authentication, twitterUser.ScreenName,
                                                                       twitterUser.Id);

            //store the credentials in forms auth?
            var authTicket = new FormsAuthenticationTicket(1, twitterUser.ScreenName, DateTime.Now,
                                                           DateTime.Now.AddMonths(6), true, "");

            string cookieContents = FormsAuthentication.Encrypt(authTicket);
            var    cookie         = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
            {
                Expires = authTicket.Expiration,
                Path    = FormsAuthentication.FormsCookiePath
            };

            if (HttpContext != null)
            {
                HttpContext.Response.Cookies.Add(cookie);
            }

            //new {authentication.AccessToken, authentication.AccessTokenSecret, twitterUser.ScreenName}
            return(RedirectToAction("UserProfile"));
        }
        public void When_Authenticate_With_Twitter_Service_Should_Return_Success()
        {
            var expected = new Models.LoginModel()
            {
                Email    = "*****@*****.**",
                Password = "******",
                Source   = "Twitter"
            };

            var service = new TwitterAuthentication();
            var actual  = service.Authenticate("*****@*****.**", "1234");

            Assert.AreEqual(expected.Email, actual.Email);
            Assert.AreEqual(expected.Password, actual.Password);
            Assert.AreEqual(expected.Source, actual.Source);
        }
Ejemplo n.º 8
0
        public void Setup()
        {
            Initialise();
            _query = "some text";

            _twitterAuthorisation = TwitterAuthenticationBuilder.Build.AnInstance();
            TwitterApiAdapter
            .Setup(x => x.Login())
            .Returns(Task.FromResult(_twitterAuthorisation));

            _tweetCollection = TweetCollectionBuilder.Build.AnInstance();
            TwitterApiAdapter
            .Setup(x => x.Search(_query, _twitterAuthorisation))
            .Returns(Task.FromResult(_tweetCollection));

            _result = Controller.SearchTweets(_query).Result;
        }
Ejemplo n.º 9
0
        public void When_Call_Index_Action_Should_Return_Valid_Model()
        {
            var expected = new Models.LoginModel()
            {
                Email    = "*****@*****.**",
                Password = "******",
                Source   = "Twitter"
            };
            var service          = new TwitterAuthentication();
            var tenantIdStrategy = new RequestParameterTenantIdentificationStrategy("tenant");
            var controller       = new TwitterController(service, tenantIdStrategy);
            var actionResult     = controller.Index();
            var viewResult       = actionResult as ViewResult;
            var actual           = viewResult.ViewData.Model as Models.LoginModel;

            Assert.AreEqual(expected.Email, actual.Email);
            Assert.AreEqual(expected.Password, actual.Password);
            Assert.AreEqual(expected.Source, actual.Source);
        }
        public TwitterAuthentication GetAuthentication()
        {
            TwitterAuthentication auth = new TwitterAuthentication();
            var oAuthConsumerKey       = "8Tgj5fGqrAqEm9BxEXcmEi0Ju";
            var oAuthConsumerSecret    = "cLCYC6wVmwSjQOgVxLQhxpiX5DQgVgjiIWtz7b5GKt0YaS7XAD";
            var oAuthUrl         = "https://api.twitter.com/oauth2/token";
            var authHeaderFormat = "Basic {0}";
            var authHeader       = string.Format(authHeaderFormat,
                                                 Convert.ToBase64String(Encoding.UTF8.GetBytes(Uri.EscapeDataString(oAuthConsumerKey) + ":" +
                                                                                               Uri.EscapeDataString((oAuthConsumerSecret)))));
            var            postBody    = "grant_type=client_credentials";
            HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create(oAuthUrl);

            authRequest.Headers.Add("Authorization", authHeader);
            authRequest.Method                 = "POST";
            authRequest.ContentType            = "application/x-www-form-urlencoded;charset=UTF-8";
            authRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            using (Stream stream = authRequest.GetRequestStream())
            {
                byte[] content = ASCIIEncoding.ASCII.GetBytes(postBody);
                stream.Write(content, 0, content.Length);
            }
            authRequest.Headers.Add("Accept-Encoding", "gzip");
            WebResponse authResponse = authRequest.GetResponse();

            // TwitAuthenticateResponse twitAuthResponse;
            using (authResponse)
            {
                using (var reader = new StreamReader(authResponse.GetResponseStream()))
                {
                    //JavaScriptSerializer js = new JavaScriptSerializer();
                    auth = JsonConvert.DeserializeObject <TwitterAuthentication>(reader.ReadToEnd());

                    //twitAuthResponse = JsonConvert.DeserializeObject<TwitAuthenticateResponse>(objectText);
                }
            }
            return(auth);
        }
Ejemplo n.º 11
0
        public void Setup()
        {
            Initialise();

            _query     = "Search criteria";
            _authToken = TwitterAuthenticationBuilder.Build.AnInstance();

            _webRequest = new Mock <HttpWebRequest>();
            TwitterApiRequestFactory
            .Setup(x => x.CreateSearchTweetRequest(_query, _authToken))
            .Returns(_webRequest.Object);

            _webResponse = new Mock <HttpWebResponse>();
            HttpWebRequestHelper
            .Setup(x => x.GetResponse(_webRequest.Object))
            .Returns(Task.FromResult(_webResponse.Object));

            _tweetCollection = TweetCollectionBuilder.Build.AnInstance();
            ObjectSerializer
            .Setup(x => x.DeserializeJson <TweetCollection>(_webResponse.Object))
            .Returns(_tweetCollection);

            _result = TwitterApiAdapter.Search(_query, _authToken).Result;
        }
Ejemplo n.º 12
0
 public void Initialize()
 {
     Authentication = new TwitterAuthentication();
 }
Ejemplo n.º 13
0
 public TwitterStreamRetriever(TwitterAuthentication authentication)
 {
     this._authentication = authentication;
 }
Ejemplo n.º 14
0
 public TwitterMethodAttribute(bool rateLimited = false, string rate = "none", TwitterAuthentication authentication = TwitterAuthentication.None)
 {
     IsRateLimited  = rateLimited;
     Authentication = authentication;
     RequestRate    = rate;
 }
 public TwitterMethodAttribute(bool rateLimited = false, string rate = "none", TwitterAuthentication authentication = TwitterAuthentication.None) {
     IsRateLimited = rateLimited;
     Authentication = authentication;
     RequestRate = rate;
 }