使用 Twitter4j 我如何获得特定用户收藏的所有推文列表
Using Twitter4j how do i get all the list of Favorited tweets by a particulate user
我想要 Twitter 用户帐户收藏的所有推文列表。
我已经完成了一些示例代码,可以为我提供用户发布的所有帖子,但我想要用户收藏的所有推文。
public List getAllTweetsOfUser(Twitter twitter, String user) {
if (user != null && !user.trim().isEmpty()) {
List statuses = new ArrayList();
int pageno = 1;
while (true) {
try {
int size = statuses.size();
Paging page = new Paging(pageno++, 100);
statuses.addAll(twitter.getUserTimeline(user, page));
if (statuses.size() == size) {
break;
}
} catch (TwitterException e) {
}
}
return statuses;
} else {
return null;
}
}
任何人都可以帮助我吗..
the Twitter4J samples 之一正是这样做的。
public final class GetFavorites {
/**
* Usage: java twitter4j.examples.favorite.GetFavorites
*
* @param args message
*/
public static void main(String[] args) {
try {
Twitter twitter = new TwitterFactory().getInstance();
List<Status> statuses = twitter.getFavorites();
for (Status status : statuses) {
System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
}
System.out.println("done.");
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to get favorites: " + te.getMessage());
System.exit(-1);
}
}
}
我试过如下..
ResponseList<Status> status = twitter.getFavorites(twitterScreenName);
它给了我作为参数传递的用户最喜欢的推文。但这里的问题是我只能获得 20 个收藏夹,尽管用户有这么多推文。
ResponseList<Status> status = twitter.getFavorites(twitterScreenName, paging);
我尝试使用分页,但我不确定如何使用此分页。所以我使用我的第一个代码获得了前 20 个收藏夹。如果有人尝试过此操作,请分享信息,例如如何获取给定用户的所有收藏夹。
您需要从1开始分页,然后递增页码。但是,请注意,如果您每 15 分钟超过 15 个请求(或每 15 分钟 15* 20 = 300 个状态),您将受到速率限制。
Paging paging = new Paging(1);
List<Status> list;
do{
list = twitter.getFavorites(userID, paging);
for (Status s : list) {
//do stuff with s
System.out.println(s.getText());
}
paging.setPage(paging.getPage() + 1);
}while(list.size() > 0);
我想要 Twitter 用户帐户收藏的所有推文列表。
我已经完成了一些示例代码,可以为我提供用户发布的所有帖子,但我想要用户收藏的所有推文。
public List getAllTweetsOfUser(Twitter twitter, String user) {
if (user != null && !user.trim().isEmpty()) {
List statuses = new ArrayList();
int pageno = 1;
while (true) {
try {
int size = statuses.size();
Paging page = new Paging(pageno++, 100);
statuses.addAll(twitter.getUserTimeline(user, page));
if (statuses.size() == size) {
break;
}
} catch (TwitterException e) {
}
}
return statuses;
} else {
return null;
}
}
任何人都可以帮助我吗..
the Twitter4J samples 之一正是这样做的。
public final class GetFavorites {
/**
* Usage: java twitter4j.examples.favorite.GetFavorites
*
* @param args message
*/
public static void main(String[] args) {
try {
Twitter twitter = new TwitterFactory().getInstance();
List<Status> statuses = twitter.getFavorites();
for (Status status : statuses) {
System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
}
System.out.println("done.");
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to get favorites: " + te.getMessage());
System.exit(-1);
}
}
}
我试过如下..
ResponseList<Status> status = twitter.getFavorites(twitterScreenName);
它给了我作为参数传递的用户最喜欢的推文。但这里的问题是我只能获得 20 个收藏夹,尽管用户有这么多推文。
ResponseList<Status> status = twitter.getFavorites(twitterScreenName, paging);
我尝试使用分页,但我不确定如何使用此分页。所以我使用我的第一个代码获得了前 20 个收藏夹。如果有人尝试过此操作,请分享信息,例如如何获取给定用户的所有收藏夹。
您需要从1开始分页,然后递增页码。但是,请注意,如果您每 15 分钟超过 15 个请求(或每 15 分钟 15* 20 = 300 个状态),您将受到速率限制。
Paging paging = new Paging(1);
List<Status> list;
do{
list = twitter.getFavorites(userID, paging);
for (Status s : list) {
//do stuff with s
System.out.println(s.getText());
}
paging.setPage(paging.getPage() + 1);
}while(list.size() > 0);