我正在使用Spring Social Twitter来检索朋友的用户名。 这是我的代码。
@Controller
@RequestMapping("/")
public class HelloController {
private Twitter twitter;
private ConnectionRepository connectionRepository;
@Inject
public HelloController(Twitter twitter, ConnectionRepository connectionRepository) {
this.twitter = twitter;
this.connectionRepository = connectionRepository;
}
@RequestMapping(method=RequestMethod.GET)
public String helloTwitter(Model model) {
if (connectionRepository.findPrimaryConnection(Twitter.class) == null) {
return "redirect:/connect/twitter";
}
model.addAttribute(twitter.userOperations().getUserProfile());
CursoredList<TwitterProfile> friends = twitter.friendOperations().getFriends();
model.addAttribute("friends", friends);
for ( TwitterProfile frnd : friends) {
System.out.println(frnd.getName());
}
return "hello";
}
}
但它只检索了20个朋友。我怎么能得到所有的朋友? (假如我有1000个朋友)
答案 0 :(得分:3)
您必须遍历所有游标并按如下方式收集结果:
// ...
CursoredList<TwitterProfile> friends = twitter.friendOperations().getFriends();
ArrayList<TwitterProfile> allFriends = friends;
while (friends.hasNext()) {
friends = twitter.friendOperations().getFriendsInCursor(friends.getNextCursor());
allFriends.addAll(friends);
}
// process allFriends...
答案 1 :(得分:1)
必须有另一个错误,spring文档特别指出:
getFriends()
“检索经过身份验证的用户最多可以访问5000个用户的列表。”
您确定要进行查询的用户有更多朋友吗?也许你可以尝试使用getFriendsIds或getFriends(字符串名称)。