Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Twitter4J的朋友列表_Java_Twitter4j - Fatal编程技术网

Java 使用Twitter4J的朋友列表

Java 使用Twitter4J的朋友列表,java,twitter4j,Java,Twitter4j,如何使用获取朋友或追随者的朋友列表 使用,我只能检索当前用户的好友/追随者列表,该列表已通过身份验证。我想要的是获得追随者的朋友或已验证用户的朋友的列表。这将显示您朋友的追随者的姓名 User u1 = null ; long cursor = -1; IDs ids; System.out.println("Listing followers's ids."); do { ids = twitter.get

如何使用获取朋友或追随者的朋友列表


使用,我只能检索当前用户的好友/追随者列表,该列表已通过身份验证。我想要的是获得追随者的朋友或已验证用户的朋友的列表。

这将显示您朋友的追随者的姓名

      User u1 = null ;
      long cursor = -1;
      IDs ids;
      System.out.println("Listing followers's ids.");
      do {
              ids = twitter.getFollowersIDs("username", cursor);
          for (long id : ids.getIDs()) {
              System.out.println(id);
              User user = twitter.showUser(id);
              System.out.println(user.getName());
          }
      } while ((cursor = ids.getNextCursor()) != 0);

像“交朋友”这样的东西怎么样

根据文件:

为每个用户返回用户对象的游标集合 指定的用户是以下用户(也称为他们的“朋友”)

twitter4j.api中有一个用于此的接口,但我不知道如何使用它:

PagableResponseList<User> getFriendsList(String screenName, long cursor) throws TwitterException;
PagableResponseList getFriendsList(字符串屏幕名,长光标)抛出TwitterException;

您只需执行以下操作:

Twitter twitter = mTwitterApp.getTwitterInstance();
long cursor = -1;
List<User> users=twitter.getFriendsList(mTwitterApp.getUserID(), cursor);
Twitter=mTwitterApp.getWitterInstance();
长光标=-1;
List users=twitter.getFriendsList(mTwitterApp.getUserID(),游标);
这里的用户是您的朋友(您正在跟踪他们)的列表用户。 mTwitterApp.getUserID()是您的登录useris,它是一个长值。

PagableResponseList friendlist=twitter.getFriendlist(user.getScreenName(),-1);
         PagableResponseList<User> friendlist= twitter.getFriendsList(user.getScreenName(), -1);

         int sizeoffreindlist= friendlist.size();

         for(int i=0;i<sizeoffreindlist;i++)
         {
             System.out.println(friendlist.get(i));
         }
int-sizeoffreindlist=friendlist.size();
对于(int i=0;i,此代码有效!(不超过速率限制)。参考StackOverflow和其他答案

    try {
            // get friends
            long cursor = -1;
            PagableResponseList<User> pagableFollowings;
            do {
                pagableFollowings = twitter.getFriendsList(twitter.getId(), cursor);
                for (User user : pagableFollowings) {
                    listFriends.add(user); // ArrayList<User>
                }
            } while ((cursor = pagableFollowings.getNextCursor()) != 0);

            // get followers
            cursor = -1;
            PagableResponseList<User> pagableFollowers;
            do {
                pagableFollowers = twitter.getFollowersList(twitter.getId(), cursor);
                for (User user : pagableFollowers) {
                    listFollowers.add(user); // ArrayList<User>
                }
            } while ((cursor = pagableFollowers.getNextCursor()) != 0);

        } catch (TwitterException e) {
            printError(e);
        }
试试看{
//交朋友
长光标=-1;
PagableResponseList PagableFollowing;
做{
PagableFollows=twitter.getFriendsList(twitter.getId(),游标);
用于(用户:页码如下){
listFriends.add(用户);//ArrayList
}
}而((cursor=pagableFollowers.getNextCursor())!=0);
//获得追随者
游标=-1;
PagableResponseList pagableFollowers;
做{
pagableFollowers=twitter.getFollowersList(twitter.getId(),游标);
for(用户:pagableFollowers){
listFollowers.add(用户);//ArrayList
}
}而((cursor=pagableFollowers.getNextCursor())!=0);
}捕获(twitter异常){
打印错误(e);
}
您可以使用

twitter.getFollowersIDs("username", cursor);
它只返回5000个用户,而不是所有用户。而且它在15分钟内被限制15次。()

你也可以用

twitter.getFollowersList("username", cursor);
它还限制了20个用户。用户身份验证在15分钟内限制15次,应用身份验证在15分钟内限制30次()


对于无限制访问,您可以查看或白名单用户访问twitter。

警告:这很有可能会使您在第一次尝试时限制访问率。我不明白您为什么一直调用
getFollowersIds
方法。这是为了对响应进行分页吗?因此Sandepshar的上一个回答是这样的at将只返回所有好友的一个子集?@rcompton我们不能克服此限制问题吗?此代码是否多次攻击API,并且您可能会被禁止超过速率限制?这将很容易超过速率限制(dev.twitter.com/rest/public/rate limiting)。使用getFriendsList而不是GetFriendsID。检查我在此页面上的答案。这将只列出前5000个用户,因为光标值为-1。注意:URL在2018年被破坏。
twitter.getFollowersList("username", cursor);