簡體   English   中英

使用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;
    }
}

任何人都可以幫助我...

我試過下面的..

ResponseList<Status> status = twitter.getFavorites(twitterScreenName);

它給了我最喜歡的用戶推文作為參數。 但這里的問題是我只能得到20個收藏夾,盡管用戶有很多推文。

ResponseList<Status> status = twitter.getFavorites(twitterScreenName, paging);

我嘗試了分頁,但我不知道如何使用這種分頁。 所以我使用我的第一個代碼獲得前20名收藏。 如果有人試過這個,請分享如何獲得給定用戶的所有收藏的信息。

您需要以1開始分頁,然后遞增頁面。 但請注意,如果您每15分鍾超過15個請求(或15 * 20 =每15分鍾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);

其中一個Twitter4J樣本就是這樣做的。

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);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM