Не удается получить screenName списка идентификаторов пользователей из-за ограничений скорости API. Что я могу сделать? С#

У меня есть функция в моем приложении, которая находит идентификаторы подписчиков пользователя. Но я хочу получить screenName этих подписчиков.

Я пытался напрямую получить Followers.screenName, но это не сработало, потому что тип подписчиков — SocialGraph, а не строка! Я пытался преобразовать это в строку, но не могу, потому что возвращает список.

Это вызывает проблемы, например, когда я ищу кого-то, у кого 1680 подписчиков. Выдает ошибку: Превышен лимит скорости.

Я хочу знать, можно ли сделать то же самое с группой userID, чтобы не превышать ограничения скорости 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;
        }

person Kevser61    schedule 05.03.2013    source источник


Ответы (1)


API Twitter устанавливает ограничения скорости. Лимит — это определенное количество запросов в течение временного окна. Временное окно обычно составляет 15 минут. Для поиска ограничение скорости составляет 180. Вы можете использовать запрос HelpType.RateLimits: http://linqtotwitter.codeplex.com/wikipage?title=Getting%20Rate%20Limits — это позволит вам написать код, чтобы выяснить, что такое ограничение скорости. Затем вы можете максимально увеличить лимит скорости и дождаться следующего окна, чтобы продолжить.

person Joe Mayo    schedule 05.03.2013