【问题标题】:TweetSharp method ListTweetsOnHomeTimeline() returns nullTweetSharp 方法 ListTweetsOnHomeTimeline() 返回 null
【发布时间】:2013-09-05 10:49:50
【问题描述】:

我是 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);
                }
            }

任何帮助将不胜感激。

【问题讨论】:

  • 您尝试做的事情很简单,但既然您说您是初学者,您可以在此处查看我的回复 [stackoverflow.com/questions/14303710/…,了解如何自定义 twitter 小部件。如果您点击链接你会发现 twitter Api 是如何定制的。

标签: twitter tweetsharp


【解决方案1】:

我遇到了同样的问题,因为我将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
    }
}

【讨论】:

  • 你能告诉我lastMessageIdProcessed 是什么以及它是如何/在哪里定义的吗?
  • 对不起,我应该指出这一点。 lastMessageIdProcessed 是您处理的tweet.Id 的最后一个值,以防止一次又一次地处理相同的消息。您可能希望将此值保留在数据库中。
【解决方案2】:

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

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

但只是一小会儿。我注意到这种情况反复出现,请求不时返回null,但如果我稍后再试,它会起作用。我猜有请求限制。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多