无法获得,因为API速率限制的用户ID列表的屏幕名。 我能做什么? linqtotwitter

2019-09-29 01:32发布

我在我的应用程序,找到用户的追随者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;
        }

Answer 1:

Twitter的API是设置速率限制。 该限制是一个时间窗口期间请求一定数量。 时间窗通常是15分钟。 对于查找,限速是180,您可以使用HelpType.RateLimits查询: http://linqtotwitter.codeplex.com/wikipage?title=Getting%20Rate%20Limits -这会让你编写代码找出率极限。 然后,您可以最大程度的发挥您的速率限制,等待下一个窗口继续。



文章来源: Can't get screenName of a list of user ID because of the API rate Limits. What can I do? linqtotwitter c#