初学者,我正在使用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);
}
}
任何帮助将不胜感激。
我遇到了同样的问题,因为我将 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
}
}
我尝试传递SinceId = null
,它解决了我的问题,如下所示:
IEnumerable<TwitterStatus> _tweets = _twitterService.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { SinceId = null });
但只是一小会儿。我注意到这是重复出现的,时不时地请求返回null
,但如果我稍后尝试,它会起作用。我猜有一个请求限制。
我发现这个:https://dev.twitter.com/docs/rate-limiting/1.1