1

我的应用程序中有一个函数可以查找用户关注者的 ID。但我想获取这些关注者的屏幕名称。

我试图直接获取 Followers.screenName 但它不起作用,因为关注者类型是 SocialGraph 而不是字符串!我试图在字符串上转换它,但我不能,因为它返回一个列表。

例如,当我搜索拥有 1680 个关注者的人时,它会导致问题。它给了我错误:超出了速率限制。

我想知道是否可以用一组用户 ID 做同样的事情而不超过 API 的速率限制?我正在与 lintotwitter 合作...

我能做些什么?

我的代码如下:

 public List<string> RecupererFollower()
        {
            List<string> idFollowers=new List<string>();
            var followers =
                (from follower in MainPage.twitterCtxProp.SocialGraph
                 where follower.Type == SocialGraphType.Followers &&
                       follower.ScreenName == MainPage.texte 
                 select follower)
                 .ToList();
            idFollowers = followers[0].IDs;

            return idFollowers;

        }

        public List<User> GetScreenName()
        {
            List<string>idFollowers=RecupererFollower();
            int nbfollower = idFollowers.Count();
            List<User> listeFollowers = new List<User>();


            for (int i = 0; i < nbfollower; i++)
                {
                var usersResponse =
                   (from user in MainPage.twitterCtxProp.User
                    where user.Type == UserType.Lookup &&
                         user.UserID == idFollowers[i]
                    select user).SingleOrDefault();

                Users = new User                                                 //Un utilisateur est créé grâce aux données récupérées précédemment.

               {
                   Name = usersResponse.ScreenName,
                   Text = usersResponse.Status.Text,
                   ImageUrl = usersResponse.ProfileImageUrl,
                   Bio = usersResponse.Description,
                   Url = usersResponse.Url,
                   NbFollowers = usersResponse.FollowersCount,
                   NbFavorite = usersResponse.FavoritesCount,
                   NbStatus = usersResponse.StatusesCount,
                   NbFollowing = usersResponse.FriendsCount,
                   NbListe = usersResponse.ListedCount,
                   Timezone = usersResponse.TimeZone,
                   Location = usersResponse.Location,
               };
                listeFollowers.Add(Users);
                }
            return listeFollowers;
        }
4

1 回答 1

0

Twitter API 正在设置速率限制。限制是一个时间窗口内的一定数量的请求。时间窗口通常为 15 分钟。对于 Lookup,速率限制为 180。您可以使用 HelpType.RateLimits 查询:http ://linqtotwitter.codeplex.com/wikipage?title=Getting%20Rate%20Limits - 这将让您编写代码来计算速率极限是。然后,您可以最大化您的速率限制并等到下一个窗口继续。

于 2013-03-05T14:27:16.597 回答