2013-09-05 3 views
3

저는 TweetSharp의 초보자이고 TweetSharp의 ListTweetsOnHomeTimeline() 메서드를 사용하고 있습니다. 때로는이 메서드가 제대로 작동하고 반환 값이 null 인 경우도 있습니다.TweetSharp 메서드 ListTweetsOnHomeTimeline()이 null을 반환합니다.

다음은 어떤 도움을 이해할 수있을 것이다

IEnumerable<TwitterStatus> homeTweets = service.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions()); 
      if (homeTweets != null) 
      { 
       foreach (var item in tweets) 
       { 
        Console.WriteLine("{0} says '{1}'", item.User.ScreenName, item.Text); 
       } 
      } 

내 코드입니다.

+0

하지만 당신은 당신이 여기에서 [내 응답을 확인할 수 있습니다 초보자를 말했다 이후 http://stackoverflow.com/questions/14303710 :

나는이 발견했습니다/how-to-customize twitter-widget-style/18634950 # 18634950] 트위터 위젯을 커스터마이징하는 방법에 대해 알아보고, 링크를 따라 가면 트위터 API가 어떻게 커스터마이즈되었는지를 알 수 있습니다. – ShapCyber

답변

3

옵션 (= null이 잘 작동 함)으로 SinceId = 0을 전달했기 때문에 동일한 문제가 발생했습니다. 게시하기 전에 실제 코드를 수정했다고 가정 할 때 이것이 문제 일 수 있습니다. 또는 Twitter API가 싫어하는 다른 잘못된 옵션. 여기

은 나를 위해 작동 코드의 조각 :

//Persist lastMessageIdProcessed accross calls to prevent 
//processing the same messages again and again 
long? lastMessageIdProcessed=null; 
IEnumerable<TwitterStatus> tweets=service.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { 
    SinceId=lastMessageIdProcessed>0?lastMessageIdProcessed:null, 
    Count=100 
}); 

if(tweets!=null) //Shouldn't happen 
{ 
    foreach(TwitterStatus tweet in tweets) 
    { 
     lastMessageIdProcessed=tweet.Id; 
     //Do your stuff here 
    } 
} 
+0

'lastMessageIdProcessed'가 무엇이고 정의 된 방법/위치를 알려주시겠습니까? – Robert

+0

죄송합니다. 나는 이것을 지적해야합니다. 'lastMessageIdProcessed'는 동일한 메시지를 반복해서 처리하지 못하도록 처리 한'tweet.Id'의 마지막 값입니다. 이 값을 데이터베이스에 유지하려고합니다. – Vincent

1

내가 SinceId = null를 통과 시도하고과 같이, 나에게 문제를 해결 :

IEnumerable<TwitterStatus> _tweets = _twitterService.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { SinceId = null }); 

그러나 단지 잠시 동안. 나는 이것이 반복되는 것을 알아 차렸고, 그때마다 요청은 null을 반환하지만 나중에 시도하면 작동합니다. 요청 제한이있는 것 같습니다. 당신이 할하려는 것은 아무것도처럼 쉽게 https://dev.twitter.com/docs/rate-limiting/1.1