1

I am getting twiiter feeds now a days. I am using tweetinvi Api, my code fetch only latest 200 feeds,and i want all.

my code is Public Function getTweets()

    ''Set the credentials
    Dim lObjConsumerKey As String = "[REDACTED]"
    Dim lObjConsumerSecret As String = "[REDACTED]"
    Dim lObjUserAccessToken As String = "[REDACTED]"
    Dim lObjUserAccessSecret As String = "[REDACTED]"
    Auth.SetUserCredentials(lObjConsumerKey, lObjConsumerSecret, lObjUserAccessToken, lObjUserAccessSecret)
    Dim lObjDataTable As New DataTable

    lObjDataTable.Columns.Add("Tweets")
    lObjDataTable.Columns.Add("CreatedAt")

    Dim GetTimelineTweets = Timeline.GetUserTimeline(txtUserName.Text)
    For Each lobjGetgetTweets In GetTimelineTweets

        Dim drNew = lObjDataTable.NewRow

        drNew("Tweets") = lobjGetgetTweets
        drNew("CreatedAt") = lobjGetgetTweets.CreatedAt
        lObjDataTable.Rows.Add(drNew)

    Next

    Return lObjDataTable

End Function
DWRoelands
  • 4,878
  • 4
  • 29
  • 42
John
  • 49
  • 1

2 Answers2

1

This behavior is by design, as per the Twitter REST API documentaion for GetUserTimeline(). In the definition of the count parameter...

Specifies the number of Tweets to try and retrieve, up to a maximum of 200 per distinct request.

To get all tweets, check out Working With Timelines on the Twitter Developer site.

DWRoelands
  • 4,878
  • 4
  • 29
  • 42
0

I have created a sample for you in the documentation : https://github.com/linvi/tweetinvi/wiki/Get-All-User-Tweets

RateLimit.RateLimitTrackerMode = RateLimitTrackerMode.TrackAndAwait;

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

long userId = <YOUR_USER_ID>;
var lastTweets = Timeline.GetUserTimeline(userId, 200).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 timelineRequestParameters = new UserTimelineParameters
    {
        // MaxId ensures that we only get tweets that have been posted 
        // BEFORE the oldest tweet we received
        MaxId = idOfOldestTweet - 1,
        MaximumNumberOfTweetsToRetrieve = numberOfTweetsToRetrieve
    };

    lastTweets = Timeline.GetUserTimeline(userId, timelineRequestParameters).ToArray();
    allTweets.AddRange(lastTweets);
}

// `allTweets` now contains all the tweets that Twitter can return
Linvi
  • 2,077
  • 1
  • 14
  • 28