1

jInstagram APIを使用するJavaアプリケーションに取り組んでいます。アプリケーションで正常にログインできますが、特定のユーザーをフォローしているユーザーのリストを取得したい場合、50 個のユーザー ID しか収集できません。

ユーザーをフォローしている 50 人のユーザーを取得するために使用しているコードは次のとおりです。

String userId = instagram.getCurrentUserInfo().getData().getId();
UserFeed feed = instagram.getUserFollowedByList(userId);
List<UserFeedData> users = feed.getUserList();
//iterate through the list and print each value. The print value is simply a user id.

その後、リストを繰り返し処理して、50 個のユーザー ID を出力できます。これで問題ありませんが、さらに多くのユーザー ID を取得する必要があります。

私の調査によると、50 を超えるユーザー ID を取得するには、Pagination クラスを使用する必要があります。これが私がまとめたものです。

    String userId = instagram.getCurrentUserInfo().getData().getId();
    UserFeed feed = instagram.getUserFollowList(userId);
    UserFeed recentData = instagram.getUserFollowedByListNextPage(feed.getPagination()); 

    int counter = 0;

    while(recentData.getPagination() != null && counter < 10){
        List<UserFeedData> a = recentData.getUserList();
         for(int i = 0; i < a.size(); i++){
            System.out.println(a.get(i)); 
        }
        counter++;
    }

このコードは機能しますが、ユーザーごとにこのような出力が得られます。

UserFeedData [id=316470004, profilePictureUrl=https://instagramimages-a.akamaihd.net/profiles/profile_316470004_75sq_1386826158.jpg, userName=thebeautifulwarrior, fullName=Dee Shower, website=http://www.totallifechanges.com/dns2015, bio=2015 the year to Reinvent & Restore! Lose 10 pounds in 10 days!!! Ask me how. Invest in yourself. E-mail: totallifechange2015@gmail.com]

私のプログラムでは、id 部分だけが必要です。テキストを解析して部分文字列を作成するだけでよいことはわかっていますが、これをより効率的に行い、代わりに API 呼び出しからデータを取得したいと考えています。コードの最初のスニペットでは、まさに必要な出力が得られます。たとえば、コードの出力は、ユーザー情報セット全体ではなく「316470004」です。

事前にご協力いただきありがとうございます。

4

1 に答える 1

0

表示されているのは、ID だけではなく、UserFeedData オブジェクト全体の文字列表現です。ユーザーの ID をプルするためにSystem.out.println(a.get(i));使用する代わりに。System.out.println(a.get(i).getId());

于 2015-05-08T13:41:36.980 に答える