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; }
/// <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)); }
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); }
// 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); }
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; }
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); }
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; }
public void Initialize() { Authentication = new TwitterAuthentication(); }
public TwitterStreamRetriever(TwitterAuthentication authentication) { this._authentication = authentication; }
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; }