使用LinqToTwiiter获取配置文件的所有推文

时间:2017-11-12 13:53:41

标签: c# twitter twitter-oauth

我正在使用LinqToTwitter Api和上下文从屏幕名称获取所有推文,但我被困在3200条推文中。使用max_id和since_id概念。 我需要做些什么更改才能使用屏幕名称从个人资料中获取所有推文? 下面是我的代码:`

       List<Status> searchResults = new List<Status>();
        try
        {
            var twitterCtx = new TwitterContext(auth);

            int maxNumberToFind = 200;
            ulong sinceID = 1;
            ulong maxID;

            var tweets = (from tweet in twitterCtx.Status
                          where tweet.Type == StatusType.User &&
                              tweet.ScreenName == screenName &&
                              tweet.Count == maxNumberToFind &&
                              tweet.SinceID == sinceID &&
                              tweet.Retweeted==false
                          select tweet).ToList();

            if (tweets.Count > 0)
            { 
                maxID = searchResults.Min(status => status.StatusID) - 1;
                searchResults.AddRange(tweets);
            }

            do
            {
                tweets.Clear();
                tweets = (from tweet in twitterCtx.Status
                          where tweet.Type == StatusType.User &&
                              tweet.ScreenName == screenName &&
                              tweet.Count == maxNumberToFind &&
                              tweet.MaxID == maxID &&
                              tweet.SinceID == sinceID &&
                              tweet.Retweeted == false

                          select tweet).ToList();

                searchResults.AddRange(tweets);


                 maxID = tweets.Min(x => x.StatusID);

            } while (searchResults.Count <= 5000);//tweets.Any()`
     }
         catch (Exception ex) { ex.ToString(); }
        return searchResults;
   }

1 个答案:

答案 0 :(得分:0)

屏幕名称不能超过3200条推文。这是一个API限制:

https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-user_timeline

要获得更多信息,您可以尝试网页抓取,也可以从Gnip购买数据。

贝斯茨