0

我正在像这样使用 TwitterFactory:

  ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true)
            .setOAuthConsumerKey("xxxxxxxxxxxxxx")
            .setOAuthConsumerSecret("xxxxxxxxxxxxx")
            .setOAuthAccessToken(xxxxxxxxxxxxx )
            .setOAuthAccessTokenSecret(xxxxxxxxxxxxx);

        TwitterFactory tf = new TwitterFactory(cb.build());


        twitter = tf.getInstance();

        long cursor = -1;

        IDs ids = twitter.getFollowersIDs(cursor);

问题是我不想要 ID,但我需要获取关注者的用户名,但我不知道怎么做?您对我应该如何获取用户名有任何想法吗?

代码更新:

  ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true)
            .setOAuthConsumerKey("xxxxxxxxxxxxxx")
            .setOAuthConsumerSecret("xxxxxxxxxxxxx")
            .setOAuthAccessToken(xxxxxxxxxxxxx )
            .setOAuthAccessTokenSecret(xxxxxxxxxxxxx);

        TwitterFactory tf = new TwitterFactory(cb.build());


        twitter = tf.getInstance();

        long cursor = -1;

        IDs ids = twitter.getFollowersIDs(cursor);

         long[] id = ids.getIDs();
            ResponseList<User> users = twitter.lookupUsers(id);               
            for (User user : users) {
                usernames.add(user.getScreenName());

            }
        }
4

1 回答 1

0

因为获取用户名是一个额外的调用,所以这是我制作的一个方法,可以批量调用 100 个。对于我的使用,我将它们映射到静态地图,但你明白了。

public static HashMap<Long,String> usernameMap = new HashMap<Long,String>();

public static void requestBatch(long[] batch,Twitter twitter) throws TwitterException
{
    ResponseList<User> responseList = twitter.lookupUsers(batch);
    for(User u : responseList){
        usernameMap.put(u.getId(), u.getScreenName());
    }
}
于 2013-11-14T19:15:01.337 回答