3

我是 TweetSharp 的初学者,我正在使用 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);
                }
            }

任何帮助将不胜感激。

4

2 回答 2

3

我遇到了同样的问题,因为我将SinceId=0 作为选项传递(=null 可以正常工作);我想您在发布之前已经修改了您的实际代码,这可能是您的问题。或者 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
    }
}
于 2013-09-16T04:04:59.090 回答
1

我尝试通过SinceId = null,它解决了我的问题,如下所示:

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

但只是一小会儿。我注意到这是经常发生的,请求不时返回null,但如果我稍后尝试,它会起作用。我猜有一个请求限制。

我发现了这个:https ://dev.twitter.com/docs/rate-limiting/1.1

于 2013-12-09T15:31:37.340 回答