我是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);
}
}
任何帮助将不胜感激。
答案 0 :(得分: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
}
}
答案 1 :(得分:1)
我尝试传递SinceId = null
,它解决了我的问题,如下:
IEnumerable<TwitterStatus> _tweets = _twitterService.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { SinceId = null });
但只是一段时间。我注意到这是反复发生的,请求会立即返回null
,但是如果我稍后再试,它就可以了。我猜是有一个请求限制。
我发现了这个:https://dev.twitter.com/docs/rate-limiting/1.1