2

我在 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 个关注者。如果我再次使用此技巧,现在我会在获得空值之前获得 300 个关注者,依此类推。我重复了很多次,直到一次调用上述代码返回所有 1271 个关注者。

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

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

4

3 回答 3

1

我使用这样的东西:

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();
于 2013-01-08T07:02:53.520 回答
0

我没有图书馆,但根据例子,你应该有这样的东西:

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

同样,我无法运行代码,因为我没有库(也懒得下载它),但试一试,让我知道它是否有效。

于 2012-05-25T15:08:06.243 回答
0

如果您得到任何回报,那是因为您的代码运行良好。

很容易找出问题所在,然后相应地开始解决您的问题。我怀疑您是正确的,并且您受到 Twitter 的限速。

在您的 while 循环之后将此添加到您的代码中:

if(followers == null) {
    Console.WriteLine("Error " + twitterService.Response.Error);
}

事实上,任何时候返回某些东西,null您都可以检查 Response 对象的 Error 以查看 TweetSharp 认为出了什么问题。看到这个

于 2013-03-20T23:44:55.173 回答