2013-09-09 4 views
2

Я использую метод ListFriends() библиотеки TweetSharp, чтобы получить всех друзей моего пользователя (у моего пользователя 500 друзей).Как получить всех друзей - TweetSharp

TwitterCursorList<TwitterUser> friendsList = service.ListFriends(new ListFriendsOptions { Cursor=-1,SkipStatus=true}); 
while (friendsList.NextCursor != null) 
{ 
    foreach (var item in friendsList) 
    { 
    count++; 
    } 
    TwitterCursorList<TwitterUser> friendsList = service.ListFriends(new ListFriendsOptions { Cursor = friendsList.NextCursor, SkipStatus = true }); 
} 

Приведенный выше код работает хорошо, но это дает мне только 300 друзей, потому что метод ListFriends() имеет ограничение скорости в 15 за 15 минут, и когда я пытаюсь получить больше друзей его пределы скорости перебираться.

Как собрать всех друзей в одной попытке coz Мое требование - показать всех друзей.

ответ

0

friends/ids предоставит вам идентификационные данные ваших друзей (5.000 макс/запрос). После этого вы можете сделать users/show, чтобы получить подробную информацию об идентификаторе пользователя. Я не знаю, какие методы TweetSharp вам нужно использовать, но я думаю, вы можете найти это в документации.

+0

друзья/Идентификаторы даст мне идентификаторы всех друзей, но я должен использовать GetUserProfileFor() метод, чтобы получить их профили, которые имеет ограничение скорости 180, то я получаю только 180 друзей, и я должен ждать 15 минут, чтобы получить больше. Есть ли другой способ получить всех друзей? –

+0

Да, вы можете использовать пользователей/поиск, чтобы получить максимум 100 профилей за один звонок. Это ListUserProfilesFor в TweetSharp? – JackPoint

+1

Да! ListUserProfileFor дает 100 профилей в вызове. Спасибо .... –

-1

У вас есть одна ошибка в коде. Вы не можете определить friendsList снова внутри вашей петли. Таким образом, последняя строка кода должна выглядеть так:

friendsList = service.ListFriends(new ListFriendsOptions { Cursor = friendsList.NextCursor, SkipStatus = true });