2017-11-12 12 views
0

LinqToTwitter Api와 컨텍스트를 사용하여 모든 트윗을 화면 이름에서 가져 오지만 3200 개의 트윗을 처리합니다. max_id 및 since_id 개념을 사용합니다. 화면 이름을 사용하여 프로필의 모든 트윗을 가져 오려면 어떻게해야합니까? 다음은 내 코드입니다 :`LinqToTwiiter를 사용하는 프로필의 모든 트윗을 받으십시오.

 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; 
    } 
+0

정확히 어떤 문제입니까/문제입니까? –

+0

모든 트윗이 필요합니다. 나는 3200 짹짹 주위에 붙어? – ankita25

답변

0

당신은 화면 이름에 대한 이상 3,200 트윗을 얻을 수 없습니다. 그것은이 API의 제한 사항입니다 :

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

더 얻으려면, 당신은 긁는 웹을 시도하거나 Gnip에서 데이터를 구입할 수 있습니다.

우수

+0

나에게 모든 트윗을 줄 수있는 다른 API를 사용해야합니까? – ankita25

+0

기록 데이터, 웹 스크래핑 또는 gnip을 원할 경우. – ZPB