How can I extract all tweets from a keyword using Tweetinvi?

I am a new C # developer and I am trying to develop an ASP.NET Webforms application for Twitter search using the Tweetinvi library. I was able to search Twitter by user and phrase. However, I am currently struggling with searching for tweets by phrase as it only returns a small number of tweets, which is less than 150 tweets, and I do not know why.

I was able to get over 1,700 tweets by a user, but I could only get 150 tweets when I applied the same concept of code when searching for a phrase and I don't know why.

Please note that a phrase in Search Tweets by phrase can be any keyword, hashtag or twitter name

Here's the C # code to search for tweets by phrase:

private List<ITweet> GetFilteredTweets(string keyword)
        {
            try
            {
                RateLimit.RateLimitTrackerMode = RateLimitTrackerMode.TrackAndAwait;

                RateLimit.QueryAwaitingForRateLimit += (se, ar) =>
                {
                    Console.WriteLine($"Query : {ar.Query} is awaiting for rate limits!");
                };

                // Create a parameter for queries with specific parameters
                var searchParameters = new SearchTweetsParameters(keyword)
                {
                    Lang = LanguageFilter.English,
                    SearchType = SearchResultType.Mixed,
                    //MaximumNumberOfResults = 100,
                    MaximumNumberOfResults = 200,
                    TweetSearchType = TweetSearchType.OriginalTweetsOnly
                };

                var lastTweets = Tweetinvi.Search.SearchTweets(searchParameters).ToArray();

                var allTweets = new List<ITweet>(lastTweets);
                var beforeLast = allTweets;

                while (lastTweets.Length > 0 && allTweets.Count <= 3200)
                {
                    var idOfOldestTweet = lastTweets.Select(x => x.Id).Min();
                    Console.WriteLine($"Oldest Tweet Id = {idOfOldestTweet}");

                    var numberOfTweetsToRetrieve = allTweets.Count > 3000 ? 3200 - allTweets.Count : 200;
                    var searchRequestParameters = new SearchTweetsParameters(keyword)
                    {
                        Lang = LanguageFilter.English,
                        SearchType = SearchResultType.Mixed,
                        // MaxId ensures that we only get tweets that have been posted 
                        // BEFORE the oldest tweet we received
                        MaxId = idOfOldestTweet - 1,
                        MaximumNumberOfResults = numberOfTweetsToRetrieve,
                        TweetSearchType = TweetSearchType.OriginalTweetsOnly
                    };

                    lastTweets = Tweetinvi.Search.SearchTweets(searchRequestParameters).ToArray();
                    allTweets.AddRange(lastTweets);
                }
                // `allTweets` now contains all the tweets that Twitter can return
                tweetList = allTweets;
                return allTweets;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

      

+3


source to share





All Articles