public async void GetItems() { string consumerKey = "YourConsumerKey"; string consumerSecret = "YourConsumerSecret"; string accessToken = "YourAccessToken"; string accessTokenSecret = "YourAccessTokenSecret"; string twitterQueryParam = "WindowsAppStudio"; TwitterQueryType queryType = TwitterQueryType.Search; int maxRecordsParam = 20; Items.Clear(); var twitterDataProvider = new TwitterDataProvider(new TwitterOAuthTokens { AccessToken = accessToken, AccessTokenSecret = accessTokenSecret, ConsumerKey = consumerKey, ConsumerSecret = consumerSecret }); var config = new TwitterDataConfig { Query = twitterQueryParam, QueryType = queryType }; var items = await twitterDataProvider.LoadDataAsync(config, maxRecordsParam); foreach (var item in items) { Items.Add(item); } }
public async void GetItems() { string consumerKey = "5zcs3Bp2kTlrsDUsMDv5BYfND"; string consumerSecret = "oZDbzyY6xmPJVskIUx0pyA4VlB6XdMQHPb4sjHDxUshgCStxzf"; string accessToken = " 248216142-jMUS9hvL97gu8fwCpkD7XqkyDBfJypvvogNybchv"; string accessTokenSecret = "coDm0ePUoWIXlIH5v46jDJFUYANVG4SvGADrUL5Kf8aSQ"; string twitterQueryParam = "WindowsAppStudio"; TwitterQueryType queryType = TwitterQueryType.Search; int maxRecordsParam = 12; Items.Clear(); _twitterDataProvider = new TwitterDataProvider(new TwitterOAuthTokens { AccessToken = accessToken, AccessTokenSecret = accessTokenSecret, ConsumerKey = consumerKey, ConsumerSecret = consumerSecret }); var config = new TwitterDataConfig { Query = twitterQueryParam, QueryType = queryType }; var items = await _twitterDataProvider.LoadDataAsync(config, maxRecordsParam); foreach (var item in items) { Items.Add(item); } }
public async Task <IList <Tweet> > NextPage(uint count) { try { TwitterDataConfig TDC = new TwitterDataConfig(); TDC.QueryType = TwitterQueryType.Search; TDC.Query = NextQuery(); List <Tweet> Tweets = await TwitterService.Instance.RequestAsync(TDC, ( int )count); int l = Tweets.Count(); _PageEnded = l < count; if (0 < l) { ulong tId = ulong.Parse(Tweets.Last().Id) - 1; MaxId = "max_id:" + tId.ToString(); } return(Tweets.ToList()); } catch (Exception ex) { Logger.Log(ID, ex.Message, LogType.WARNING); } _PageEnded = true; return(new Tweet[0]); }
private async Task PullHomeFeed() { // Fetches the home feed of the user (i.e. what the user's followers tweeted) TwitterDataConfig tc = new TwitterDataConfig(); tc.QueryType = TwitterQueryType.Home; lstHome.ItemsSource = await TwitterService.Instance.RequestAsync(tc, 50); }
public async Task LoadMoreDataInvalidOperationTwitterHomeTimeLine() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.Home }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterValidKeys); InvalidOperationException exception = await ExceptionsAssert.ThrowsAsync <InvalidOperationException>(async() => await dataProvider.LoadMoreDataAsync()); }
public override async Task <IEnumerable <TwitterSchema> > GetDataAsync(SchemaBase connectedItem = null) { var config = new TwitterDataConfig { QueryType = TwitterQueryType.Search, Query = @"#rodin" }; return(await _dataProvider.LoadDataAsync(config, MaxRecords)); }
public async Task TestNullOAuth() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.User, Query = "lumia" }; var dataProvider = new TwitterDataProvider(null); await ExceptionsAssert.ThrowsAsync <ConfigParameterNullException>(async() => await dataProvider.LoadDataAsync(config)); }
public async Task TestMaxRecordsHomeTimeLine() { int maxRecords = 70; var config = new TwitterDataConfig { QueryType = TwitterQueryType.Home }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterValidKeys); IEnumerable <TwitterSchema> result = await dataProvider.LoadDataAsync(config, maxRecords); Assert.IsTrue(result.Count() > 15, $"There are {result.Count()} elements"); }
public async Task TestRevokedOAuth() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.User, Query = "lumia" }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterRevokedKeys); await ExceptionsAssert.ThrowsAsync <OAuthKeysRevokedException>(async() => await dataProvider.LoadDataAsync(config)); }
public async Task TestHomeTimeLine() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.Home }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterValidKeys); IEnumerable <TwitterSchema> result = await dataProvider.LoadDataAsync(config); Assert.IsNotNull(result); Assert.IsTrue(result.Any()); }
public async Task TestNullQuery() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.User }; var dataProvider = new TwitterDataProvider(new TwitterOAuthTokens()); ConfigParameterNullException exception = await ExceptionsAssert.ThrowsAsync <ConfigParameterNullException>(async() => await dataProvider.LoadDataAsync(config)); Assert.IsTrue(exception.Message.Contains("Query")); }
public async Task <List <Tweet2> > GetFeedAsync() { if (!await TwitterService.Instance.LoginAsync()) { // login failed. probably should do something here. return(null); } else { try { TwitterUser TwUser = await TwitterService.Instance.GetUserAsync(); } catch (TwitterException ex) { if ((ex.Errors?.Errors?.Length > 0) && (ex.Errors.Errors[0].Code == 89)) { await new MessageDialog("Access token expired! Logging out.").ShowAsync(); TwitterService.Instance.Logout(); return(null); } else { throw ex; } } var TwConfig = new TwitterDataConfig { Query = "statuses/home_timeline.json", QueryType = TwitterQueryType.Home }; // create a list of Tweet objects List <Tweet> TwTweets = await TwitterService.Instance.RequestAsync(TwConfig, 100); // instantiate a list of Tweet2 objects, which will allow adding additional metadata to the tweet object List <Tweet2> Tweets = new List <Tweet2>(); // iterate through the list of Tweet objects and convert them to Tweet2 objects // then add the Tweet2 objects to the new list foreach (Tweet t in TwTweets) { Tweet2 t2 = new Tweet2(); t2.BaseTweet = t; Tweets.Add(t2); } return(Tweets); } }
public async Task TestEmptyOAuth() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.User, Query = "lumia" }; var dataProvider = new TwitterDataProvider(new TwitterOAuthTokens()); OAuthKeysNotPresentException exception = await ExceptionsAssert.ThrowsAsync <OAuthKeysNotPresentException>(async() => await dataProvider.LoadDataAsync(config)); Assert.IsTrue(exception.Message.Contains("ConsumerKey")); }
public async Task TestMaxRecordsSearch_Min() { int maxRecords = 1; var config = new TwitterDataConfig { QueryType = TwitterQueryType.Search, Query = "microsoft" }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterValidKeys); IEnumerable <TwitterSchema> result = await dataProvider.LoadDataAsync(config, maxRecords); Assert.IsTrue(result.Count() <= maxRecords); }
private async void Request() { try { IsBusy = true; HasErrors = false; NoItems = false; DataProviderRawData = string.Empty; Items.Clear(); var twitterDataProvider = new TwitterDataProvider(new TwitterOAuthTokens { AccessToken = AccessToken, AccessTokenSecret = AccessTokenSecret, ConsumerKey = ConsumerKey, ConsumerSecret = ConsumerSecret }); var config = new TwitterDataConfig { Query = TwitterQueryParam, QueryType = TwitterQueryTypeSelectedItem }; var rawParser = new RawParser(); var rawData = await twitterDataProvider.LoadDataAsync(config, MaxRecordsParam, rawParser); DataProviderRawData = rawData.FirstOrDefault()?.Raw; var items = await twitterDataProvider.LoadDataAsync(config, MaxRecordsParam); NoItems = !items.Any(); foreach (var item in items) { Items.Add(item); } } catch (Exception ex) { DataProviderRawData += ex.Message; DataProviderRawData += ex.StackTrace; HasErrors = true; } finally { IsBusy = false; } }
public async Task TestMaxRecordsUserTimeLine() { int maxRecords = 70; var config = new TwitterDataConfig { QueryType = TwitterQueryType.User, Query = "lumia" }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterValidKeys); IEnumerable <TwitterSchema> result = await dataProvider.LoadDataAsync(config, maxRecords); Assert.AreEqual(maxRecords, result.Count()); Assert.IsTrue(result.Count() > 25); }
public async Task LoadPaginationTwitterHomeTimeLine() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.Home }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterValidKeys); await dataProvider.LoadDataAsync(config, 2); Assert.IsTrue(dataProvider.HasMoreItems); IEnumerable <TwitterSchema> result = await dataProvider.LoadMoreDataAsync(); Assert.IsNotNull(result); Assert.IsTrue(result.Any()); }
public async Task LoadPaginationTwitterSearch() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.Search, Query = "microsoft" }; var dataProvider = new TwitterDataProvider(OAuthKeys.TwitterValidKeys); await dataProvider.LoadDataAsync(config, 2); Assert.IsTrue(dataProvider.HasMoreItems, "HasMoreItems is false"); IEnumerable <TwitterSchema> result = await dataProvider.LoadMoreDataAsync(); Assert.IsNotNull(result); Assert.IsTrue(result.Any(), "There aren't any elements"); }
public async Task TestInvalidOAuth() { var config = new TwitterDataConfig { QueryType = TwitterQueryType.User, Query = "lumia" }; var tokens = new TwitterOAuthTokens { ConsumerKey = "INVALID", ConsumerSecret = "INVALID", AccessToken = "INVALID", AccessTokenSecret = "INVALID" }; var dataProvider = new TwitterDataProvider(tokens); await ExceptionsAssert.ThrowsAsync <OAuthKeysRevokedException>(async() => await dataProvider.LoadDataAsync(config)); }
//----==== PRIVATE ====------------------------------------------------------------------- private async void FetchFollowers() { try { IsBusy = true; var config = new TwitterDataConfig { Query = string.Empty, QueryType = TwitterQueryType.User }; List <MyTwitterUser> users = await TwitterService.Instance.RequestAsync <MyTwitterUser>(config); Followers.Clear(); foreach (var tweet in users) { Followers.Add(tweet); } } catch (TwitterException tex) { if (tex.Errors?.Errors?.Length > 0 && tex.Errors.Errors[0].Code == 89) { } Message = $"Failed obtain followers: {tex.Message}"; } catch (Exception ex) { Message = $"Failed obtain followers: {ex.Message}"; } finally { IsBusy = false; } }