c# - 如何使用游标检索所有使用 TweetSharp 的 Twitter 用户?

标签 c# .net twitter cursor tweetsharp

我在 WPF .NET 4.0 C# 应用程序中使用 TweetSharp,并使用经过身份验证的 Twitter 服务对象。 我在遍历关注者列表以检索每个个人资料时遇到问题。我正在使用以下代码:

TwitterCursorList<TwitterUser> followers = twitterService.ListFollowersOf(userID, -1);
while (followers != null)
{
    foreach (TwitterUser follower in followers)
    {
        //Do something with the user profile here
    }
    followers = twitterService.ListFollowersOf(userID, (long)followers.NextCursor);
} 

当我将此用于我自己的帐户时,我看到了一个奇怪的行为,在撰写本文时该帐户有 1271 名关注者。第一次运行代码时,我得到了一个包含 100 个关注者的列表,在下一次 ListFollowersOf 调用中,关注者为空,循环结束。

这是奇怪的部分:如果我再次运行这段代码,无论是在同一个应用程序实例中,还是如果我停止 Visual Studio 并重新启动,都没有关系,我会得到一个额外的迭代并且现在我得到了 200 个关注者。如果我再次使用这个技巧,现在我会在得到 null 之前得到 300 个关注者,依此类推。我重复了很多次,直到一次调用上面的代码返回了所有 1271 个关注者。

真正奇怪的是这最终会重置。我认为它与 Twitter API 限制重置时间有关,但我尚未验证。我会看看这是否与 API 重置一致。重置发生后,我只有 100 个关注者,然后是 200 个,依此类推。

我查看了 TweetSharp 单元测试和以下帖子,它们对我不起作用:

最佳答案

我用的是这样的:

public static List<TwitterUser> GetFollowers(this TwitterService svc)
{
    List<TwitterUser> ret = new List<TwitterUser>();

    var followers = svc.ListFollowers(-1);
    ret.AddRange(followers);
    while (followers.NextCursor != null && followers.NextCursor.Value > 0)
    {
        followers = svc.ListFollowers(followers.NextCursor.Value);
        ret.AddRange(followers);
    }
    return ret;
}

然后

var f = svc.GetFollowers();

关于c# - 如何使用游标检索所有使用 TweetSharp 的 Twitter 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745475/

相关文章:

c# - 如何使用 .net TransactionScope 从 MQ 执行事务性 GET?

c# - 正则表达式:重复捕获组

c# - 在 C++ 中的两个类之间共享(QList 的)实例

c# - 尝试设置本地计算机帐户密码时出现未知错误 (0x80005000)

.net - LINQ:何时使用 SingleOrDefault 与 FirstOrDefault() 以及过滤条件

c# - 将传真连接到网站

xcode - 嵌入用户时间轴 - Twitterkit/Swift

json - 如何以编程方式将 JSON 文件导入 MATLAB?

java - 我怎样才能只使用java获取英文推文?

c# - 签署 WP7 项目的强名?