Twitter 在我的网站主页中频繁刷新推文,但未达到速率限制

Twitter 在我的网站主页中频繁刷新推文,但未达到速率限制,twitter,tweetsharp,Twitter,Tweetsharp,我在这个网站上工作,它需要向用户显示实时推文。我使用Tweet Sharp库获取推文。 我的站点需要频繁刷新tweet,但有时我会收到{“远程服务器返回错误:(429)请求太多。”}错误。 由于我的网站需要实时信息,我必须经常获取推文。我怎样才能做到这一点?如何获得最新推文而不达到速率限制 TwitterService服务=新的TwitterService(AppSetting.objTwitterClientInfo.ConsumerKey,AppSetting.objTwitterClien

我在这个网站上工作,它需要向用户显示实时推文。我使用Tweet Sharp库获取推文。 我的站点需要频繁刷新tweet,但有时我会收到{“远程服务器返回错误:(429)请求太多。”}错误。 由于我的网站需要实时信息,我必须经常获取推文。我怎样才能做到这一点?如何获得最新推文而不达到速率限制

TwitterService服务=新的TwitterService(AppSetting.objTwitterClientInfo.ConsumerKey,AppSetting.objTwitterClientInfo.consumercret,AppSetting.objTwitterModerateInfo.mediateaccesstoken,AppSetting.objTwitterModerateInfo.mediateaccesstokensecret);
var options=新列表TweetsOnHomeTimeLineOptions();
options.ExcludeReplies=false;
options.Count=intTotalRec;
var lstTwitterStatus=service.ListTweetsOnHomeTimeline(选项);

您可以像这样使用流式api:-

public void Can_stream_from_user_stream() {
            const int maxStreamEvents = 5;

            var block = new AutoResetEvent(false);
            var count = 0;


            service.StreamUser((streamEvent, response) =>
            {
                if (streamEvent is TwitterUserStreamEnd)
                {
                    block.Set();
                }

                if (response.StatusCode == 0)
                {
                    if (streamEvent is TwitterUserStreamFriends)
                    {
                        var friends = (TwitterUserStreamFriends)streamEvent;
                        Assert.IsNotNull(friends);
                        Assert.IsNotNull(friends.RawSource);
                        Assert.IsTrue(friends.Ids.Any());
                    }

                    if (streamEvent is TwitterUserStreamEvent)
                    {
                        var @event = (TwitterUserStreamEvent)streamEvent;
                        Assert.IsNotNull(@event);
                        Assert.IsNotNull(@event.TargetObject);
                        Assert.IsNotNull(@event.RawSource);
                        Console.Write(@event.Event + "\n" + @event.Source + "\n" + @event.Target);
                    }

                    if (streamEvent is TwitterUserStreamStatus)
                    {
                        var tweet = ((TwitterUserStreamStatus)streamEvent).Status;
                        Assert.IsNotNull(tweet);
                        Assert.IsNotNull(tweet.Id);
                        Assert.IsNotNull(tweet.User);
                        Assert.IsNotNull(tweet.RawSource);
                        Assert.IsNotNull(tweet.User.ScreenName);
                        Console.WriteLine(tweet.User.ScreenName + "\n" + tweet.Text);
                    }

                    if (streamEvent is TwitterUserStreamDirectMessage)
                    {
                        var dm = ((TwitterUserStreamDirectMessage)streamEvent).DirectMessage;
                        Assert.IsNotNull(dm);
                        Assert.IsNotNull(dm.Id);
                        Assert.IsNotNull(dm.Sender);
                        Assert.IsNotNull(dm.Recipient);
                        Assert.IsNotNull(dm.RawSource);
                        Console.WriteLine(dm.SenderScreenName + "\n" + dm.RecipientScreenName + "\n" + dm.Text);
                    }

                    if (streamEvent is TwitterUserStreamDeleteStatus)
                    {
                        var deleted = (TwitterUserStreamDeleteStatus)streamEvent;
                        Assert.IsNotNull(deleted);
                        Assert.IsTrue(deleted.StatusId > 0);
                        Assert.IsTrue(deleted.UserId > 0);
                    }

                    if (streamEvent is TwitterUserStreamDeleteDirectMessage)
                    {
                        var deleted = (TwitterUserStreamDeleteDirectMessage)streamEvent;
                        Assert.IsNotNull(deleted);
                        Assert.IsTrue(deleted.DirectMessageId > 0);
                        Assert.IsTrue(deleted.UserId > 0);
                    }

                    count++;
                    if (count == maxStreamEvents)
                    {
                        block.Set();
                    }
                }
                else
                {
                    Assert.Ignore("Stream responsed with status code: {0}", response.StatusCode);
                }
            });

            block.WaitOne();
            service.CancelStreaming();
        }

为什么不直接使用他们提供的twitter小部件呢?我在谷歌上搜索了一下后猜测是这样的;我不能使用Twitter小部件,我的要求不同。我在与股票相关的网站上工作。它需要来自多个twitter帐户的数据。@dutt:是的,我在twitter推荐的流式API上看到了文档。但我不知道如何实现它,因为我是twitter新手。