wpf - 如何使用tweetsharp库获取用户事件?

标签 wpf api twitter tweetsharp

我正在使用 wpf 和 tweetsharp 库创建一个演示应用程序,我需要获取用户事件,例如 TweetDeck 事件。 我们怎样才能完成这个任务呢? 请帮助我。

任何帮助将不胜感激。

最佳答案

您应该使用下面的代码行在站点流的帮助下获取 tweetsharp 库 的 Twitter 事件。

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

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

            var service = GetAuthenticatedService();

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

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

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

                    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();
        }

上面的代码行是我从 this Link 获取的

关于wpf - 如何使用tweetsharp库获取用户事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210947/

相关文章:

wpf - 使用 ReactiveUI ViewModels 将不同对象的动态集合绑定(bind)到 WPF 数据网格

c# - 如何使用多对多关系中的两个对象绑定(bind)到 WPF View ?

python - 使用 Tweepy 通过 API 1.1 搜索推文

facebook - 如何在我网站的评论中显示 facebook 和 twitter 用户个人资料图片

ruby-on-rails - Twitter 中的动态回调 url 支持 - Omniauth

wpf - 性能缓慢的 WPF 动画。使用形状比使用 .png 更好?

java - 无法下载 javax.comm

c# - 如何解决调用 Amazon SP-API 的问题,即使使用有效的 token 和签名,它也始终返回未经授权

javascript - 返回( dispatch )未解雇

c# - 防止 XAML 中的重复代码