public async Task InitTweetViewModel() { string consumerKey = ""; string consumerSecret = ""; var authSvc = DependencyService.Get <ILinqToTwitterAuthorizer>(); IAuthorizer auth = authSvc.GetAuthorizer(consumerKey, consumerSecret); await auth.AuthorizeAsync(); var ctx = new TwitterContext(auth); Search searchResponse = await (from search in ctx.Search where search.Type == SearchType.Search && search.Query == "\"Twitter\"" select search) .SingleAsync(); Tweets = (from tweet in searchResponse.Statuses select new Tweet { StatusID = tweet.StatusID, ScreenName = tweet.User.ScreenNameResponse, Text = tweet.Text, ImageUrl = tweet.User.ProfileImageUrl }) .ToList(); }
public async Task RefreshData() { _auth = _linqToTwitterAuthorizer.GetAuthorizer(Secrets.TwitterAPIKey, Secrets.TwitterAPISecretKey); await _auth.AuthorizeAsync(); //ht--tps://github.com/JoeMayo/LinqToTwitter/wiki/Querying-the-User-Timeline using (var ctx = new TwitterContext(_auth)) { List <Status> tweets = await (from tweet in ctx.Status where tweet.Type == StatusType.User && tweet.ScreenName == UserName && tweet.Count == 200 && tweet.SinceID == 1 /*sinceID*/ && tweet.TweetMode == TweetMode.Extended select tweet) .ToListAsync(); Tweets = (from tweet in tweets select new Tweet { StatusID = tweet.StatusID, ScreenName = tweet.User.ScreenNameResponse, Text = tweet.FullText, ImageUrl = tweet.User.ProfileImageUrl }) .ToList(); } InitializeChain(); GenerateTweets(GenerateNumber); }
public async Task <TwitterContext> GetTwitterContext() { IAuthorizer auth = Secrets.DoSingleUserAuth(); await auth.AuthorizeAsync(); return(new TwitterContext(auth)); }
public IAuthenticationResult Authenticate(IAuthorizer authorizer) { IAuthenticationResult result; authorizer.AuthorizeAsync(); TwitterContext twitterContext = new TwitterContext(authorizer); try{ Account account = twitterContext.Account.SingleOrDefault(acc => acc.Type == AccountType.VerifyCredentials); result = new AuthenticationResult(true, $"Successfully authenticated to twitter API as user : {account.User.Name} ."); } catch (Exception exception) { if (exception.InnerException?.GetType() == typeof(TwitterQueryException)) { result = ((TwitterQueryException)exception.InnerException).ErrorCode == BadAuthenticationDataErrorCode ? new AuthenticationResult(false, "Unable to twitter API. Check credential details.") : new AuthenticationResult(false, $"Unknown error was encountered:\n {exception.Message}"); } else { throw; } } Logger.LogMessage(new LogMessage($"Authentication {(result.Success ? "succesfull" : "failed")}.", Severity.Information)); return(result); }
public async Task InitTweetViewModel() { _auth = _linqToTwitterAuthorizer.GetAuthorizer(consumerKey, consumerSecret); await _auth.AuthorizeAsync(); //ht--tps://github.com/JoeMayo/LinqToTwitter/wiki/Querying-the-User-Timeline using (var ctx = new TwitterContext(_auth)) { List <Status> tweets = await (from tweet in ctx.Status where tweet.Type == StatusType.User && tweet.ScreenName == "realDonaldTrump" && tweet.Count == 200 /*MaxTweetsToReturn*/ && tweet.SinceID == 1 /*sinceID*/ && tweet.TweetMode == TweetMode.Extended select tweet) .ToListAsync(); Tweets = (from tweet in tweets select new Tweet { StatusID = tweet.StatusID, ScreenName = tweet.User.ScreenNameResponse, Text = tweet.FullText, ImageUrl = tweet.User.ProfileImageUrl }) .ToList(); } var chain = new MarkovChain <string>(1); foreach (var t in Tweets) { chain.Add(t.Text.Split(' '), 1); //foreach(var s in t.Text.Split(' ')) //{ // chain.Add(s, 1); //} } Tweets.Add(new Tweet() { Text = "--------------" }); //String testOutput = String.Empty; var rand = new Random(); for (int i = 0; i < 10; i++) { //var word = new string(chain.Chain(rand).ToArray()); //testOutput += " " + word; var sentence = string.Join(" ", chain.Chain(rand)); Tweets.Add(new Tweet() { Text = sentence }); } //Tweets.Add(new Tweet() { Text = testOutput }); }
public static async Task <TwitterContext> GetTwitterContextAsync(string ConsumerKey, string TwitterConsumerSecret, string TwitterAccessToken, string TwitterAccessTokenSecret) { IAuthorizer auth = GetAuthorizer(ConsumerKey, TwitterConsumerSecret, TwitterAccessToken, TwitterAccessTokenSecret); await auth.AuthorizeAsync(); return(new TwitterContext(auth)); }
private TwitterContext AuthorizeContext(IAuthorizer auth) { try { auth.AuthorizeAsync().Wait(5 * 1000); return(new TwitterContext(auth)); } catch (Exception e) { throw new Exception("TwitterAPIćfailed." + e.Message); } }
public async Task LoadTwitterData() { _auth = _linqToTwitterAuthorizer.GetAuthorizer(Secrets.TwitterAPIKey, Secrets.TwitterAPISecretKey); await _auth.AuthorizeAsync(); using (var ctx = new TwitterContext(_auth)) { await RunUserTimelineQueryAsync(ctx); } InitializeChain(); GenerateTweets(GenerateNumber); }
static void Main(string[] args) { ShowMenu(); IAuthorizer authorizer = DoPinOAuth(); authorizer.AuthorizeAsync().Wait(); var twitterCtx = new TwitterContext(authorizer); string twitterHandle = "Placeholder"; int presidentialCandidateID = 0; GetPresidentialCandidateTweets(twitterCtx, twitterHandle, presidentialCandidateID).Wait(); //AndrewYang Console.Write("\nPress any key to close console window..."); Console.ReadKey(true); }
static async Task ExtractTweetsAsync() { IAuthorizer auth = DoSingleUserAuth(); await auth.AuthorizeAsync(); var twitterCtx = new TwitterContext(auth); ulong lastTweetId = 0; var tweetsAmount = 0; while (tweetsAmount < 3200) { using (var context = new TweetsDbContext()) { lastTweetId = await context.Tweets.CountAsync() > 0 ? (ulong)await context.Tweets.MaxAsync(tweet => tweet.TweetId) : 0; var tweets = await SearchContext.DoSearchAsync(twitterCtx, lastTweetId); if (tweets.Count <= 0) { break; } context.Tweets.AddRange(tweets); await context.Database.OpenConnectionAsync(); try { await context.Database.ExecuteSqlInterpolatedAsync($"SET IDENTITY_INSERT dbo.Tweets ON"); await context.SaveChangesAsync(); await context.Database.ExecuteSqlInterpolatedAsync($"SET IDENTITY_INSERT dbo.Tweets OFF"); } finally { await context.Database.CloseConnectionAsync(); } tweetsAmount += tweets.Count; } } }
private async Task RefreshAsync() { await _auth.AuthorizeAsync(); using (var ctx = new TwitterContext(_auth)) { var srch = await (from tweet in ctx.Status where tweet.Type == StatusType.Home select new Tweet() { StatusID = tweet.StatusID, ScreenName = tweet.User.ScreenNameResponse, Text = tweet.Text, ImageUrl = tweet.RetweetedStatus != null && tweet.RetweetedStatus.User != null ? tweet.RetweetedStatus.User.ProfileImageUrl.Replace("http://", "https://") : tweet.User.ProfileImageUrl }).ToListAsync(); Tweets = new List <Tweet>(srch); } }
public async Task SearchUsers(String partial) { _auth = _linqToTwitterAuthorizer.GetAuthorizer(Secrets.TwitterAPIKey, Secrets.TwitterAPISecretKey); await _auth.AuthorizeAsync(); using (var ctx = new TwitterContext(_auth)) { var foundUsers = await (from user in ctx.User where user.Type == UserType.Search && user.Query == partial select user) .ToListAsync(); if (foundUsers != null) { foundUsers.ForEach(user => Console.WriteLine("User: " + user.ScreenNameResponse)); } } }
static async Task DoDemosAsync() { IAuthorizer auth = ChooseAuthenticationStrategy(); await auth.AuthorizeAsync(); // This is how you access credentials after authorization. // The oauthToken and oauthTokenSecret do not expire. // You can use the userID to associate the credentials with the user. // You can save credentials any way you want - database, isolated storage, etc. - it's up to you. // You can retrieve and load all 4 credentials on subsequent queries to avoid the need to re-authorize. // When you've loaded all 4 credentials, LINQ to Twitter will let you make queries without re-authorizing. // //var credentials = auth.CredentialStore; //string oauthToken = credentials.OAuthToken; //string oauthTokenSecret = credentials.OAuthTokenSecret; //string screenName = credentials.ScreenName; //ulong userID = credentials.UserID; // var twitterCtx = new TwitterContext(auth); await LinqToTwitter.SingleStatusQueryAsync(twitterCtx); }
static async Task DoDemosAsync() { IAuthorizer auth = ChooseAuthenticationStrategy(); await auth.AuthorizeAsync(); // This is how you access credentials after authorization. // The oauthToken and oauthTokenSecret do not expire. // You can use the userID to associate the credentials with the user. // You can save credentials any way you want - database, isolated storage, etc. - it's up to you. // You can retrieve and load all 4 credentials on subsequent queries to avoid the need to re-authorize. // When you've loaded all 4 credentials, LINQ to Twitter will let you make queries without re-authorizing. // //var credentials = auth.CredentialStore; //string oauthToken = credentials.OAuthToken; //string oauthTokenSecret = credentials.OAuthTokenSecret; //string screenName = credentials.ScreenName; //ulong userID = credentials.UserID; // var twitterCtx = new TwitterContext(auth); char key; do { ShowMenu(); key = Console.ReadKey(true).KeyChar; switch (key) { case '0': Console.WriteLine("\n\tRunning Account Demos...\n"); await AccountDemos.RunAsync(twitterCtx); break; case '1': Console.WriteLine("\n\tRunning Account Activity Demos...\n"); await AccountActivityDemos.RunAsync(twitterCtx); break; case '2': Console.WriteLine("\n\tRunning Block Demos...\n"); await BlockDemos.RunAsync(twitterCtx); break; case '3': Console.WriteLine("\n\tRunning Direct Message Events Demos...\n"); await DirectMessageEventsDemos.RunAsync(twitterCtx); break; case '4': Console.WriteLine("\n\tRunning Favorite Demos...\n"); await FavoriteDemos.RunAsync(twitterCtx); break; case '5': Console.WriteLine("\n\tRunning Friendship Demos...\n"); await FriendshipDemos.RunAsync(twitterCtx); break; case '6': Console.WriteLine("\n\tRunning Geo Demos...\n"); await GeoDemos.RunAsync(twitterCtx); break; case '7': Console.WriteLine("\n\tRunning Help Demos...\n"); await HelpDemos.RunAsync(twitterCtx); break; case '8': Console.WriteLine("\n\tRunning List Demos...\n"); await ListDemos.RunAsync(twitterCtx); break; case '9': Console.WriteLine("\n\tRunning Media Demos...\n"); await MediaDemos.RunAsync(twitterCtx); break; case 'a': case 'A': Console.WriteLine("\n\tRunning Mutes Demos...\n"); await MuteDemos.RunAsync(twitterCtx); break; case 'b': case 'B': Console.WriteLine("\n\tRunning Raw Demos...\n"); await RawDemos.RunAsync(twitterCtx); break; case 'c': case 'C': Console.WriteLine("\n\tRunning Saved Search Demos...\n"); await SavedSearchDemos.RunAsync(twitterCtx); break; case 'd': case 'D': Console.WriteLine("\n\tRunning Search Demos...\n"); await SearchDemos.RunAsync(twitterCtx); break; case 'e': case 'E': Console.WriteLine("\n\tRunning Status Demos...\n"); await StatusDemos.RunAsync(twitterCtx); break; case 'f': case 'F': Console.WriteLine("\n\tRunning Stream Demos...\n"); await StreamDemos.RunAsync(twitterCtx); break; case 'g': case 'G': Console.WriteLine("\n\tRunning Trend Demos...\n"); await TrendDemos.RunAsync(twitterCtx); break; case 'h': case 'H': Console.WriteLine("\n\tRunning User Demos...\n"); await UserDemos.RunAsync(twitterCtx); break; case 'i': case 'I': Console.WriteLine("\n\tRunning Welcome Message Demos...\n"); await WelcomeMessageDemos.RunAsync(twitterCtx); break; case 'q': case 'Q': Console.WriteLine("\nQuitting...\n"); break; default: Console.WriteLine(key + " is unknown"); break; } } while (char.ToUpper(key) != 'Q'); }
private async Task InitTwitterAPIAsync(IAuthorizer auth) { await auth.AuthorizeAsync(); _twitterContext = new TwitterContext(auth); }
static TwitterContext AuthTwitterContext(IAuthorizer authapp) { authapp.AuthorizeAsync().Wait(); return(new TwitterContext(authapp)); }
public async Task <TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate <TResponse> next) { await _authorizer.AuthorizeAsync(request); return(await next()); }