View on GitHub

LinqToTwitter

LINQ Provider for the Twitter API (C# Twitter Library)

Querying the User Timeline

Gets the 20 most recent statuses for the authorized user (doesn’t include user’s friends). The max number of tweets you can retrieve is 3200.

Entity: Status

Type: StatusType.User

Parameters/Filters:
Name Purpose Type Required
IncludeContributorDetails Include additional user details bool no
Count Number of tweets to return; max is 200 int no
ExcludeReplies Exclude tweet replies bool no
ID ID or ScreenName of user ulong only if UserID and ScreenName are empty
IncludeMyRetweet Include retweets bool no
MaxID Return tweets earlier than or equal to this ID ulong no
ScreenName Screen name of user string only if ID and UserID are empty
SinceID Return tweets later than this ID ulong no
TrimUser Trim user details bool no
UserID ID of user ulong only if ID and ScreenName are empty
v3.0 Example:
        static async Task RunUserTimelineQueryAsync(TwitterContext twitterCtx)
        {
            //List<Status> tweets =
            //    await
            //    (from tweet in twitterCtx.Status
            //     where tweet.Type == StatusType.User &&
            //           tweet.ScreenName == "JoeMayo"
            //     select tweet)
            //    .ToListAsync();

            const int MaxTweetsToReturn = 200;
            const int MaxTotalResults = 100;

            // oldest id you already have for this search term
            ulong sinceID = 1;

            // used after the first query to track current session
            ulong maxID;

            var combinedSearchResults = new List<Status>();

            List<Status> tweets =
                await
                (from tweet in twitterCtx.Status
                 where tweet.Type == StatusType.User &&
                       tweet.ScreenName == "JoeMayo" &&
                       tweet.Count == MaxTweetsToReturn &&
                       tweet.SinceID == sinceID &&
                       tweet.TweetMode == TweetMode.Extended
                 select tweet)
                .ToListAsync();

            if (tweets != null)
            {
                combinedSearchResults.AddRange(tweets);
                ulong previousMaxID = ulong.MaxValue;
                do
                {
                    // one less than the newest id you've just queried
                    maxID = tweets.Min(status => status.StatusID) - 1;

                    Debug.Assert(maxID < previousMaxID);
                    previousMaxID = maxID;

                    tweets =
                        await
                        (from tweet in twitterCtx.Status
                         where tweet.Type == StatusType.User &&
                               tweet.ScreenName == "JoeMayo" &&
                               tweet.Count == MaxTweetsToReturn &&
                               tweet.MaxID == maxID &&
                               tweet.SinceID == sinceID &&
                               tweet.TweetMode == TweetMode.Extended
                         select tweet)
                        .ToListAsync();

                    combinedSearchResults.AddRange(tweets);

                } while (tweets.Any() && combinedSearchResults.Count < MaxTotalResults);

                PrintTweetsResults(tweets);
            }
            else
            {
                Console.WriteLine("No entries found.");
            }
        }
v2.1 Example:
            var statusTweets =
                from tweet in twitterCtx.Status
                where tweet.Type == StatusType.User
                      && tweet.ScreenName == "JoeMayo"
                select tweet;

            statusTweets.ToList().ForEach(
                tweet => Console.WriteLine(
                "Name: {0}, Tweet: {1}\n",
                tweet.User.Name, tweet.Text));

Twitter API: statuses/user_timeline