【问题标题】:Getting Friend's Timeline Using Twitter4j API使用 Twitter4j API 获取朋友的时间线
【发布时间】:2016-04-24 23:32:29
【问题描述】:

我已经开始学习 Twitter4j API 并且已经从 Twitter 获得了使用它的所有凭据和令牌。 现在我正在尝试使用一个简单的 java 程序获取我朋友的时间线并将其打印在控制台上。

       ConfigurationBuilder cb = new ConfigurationBuilder();
       cb.setDebugEnabled(true)
           .setOAuthConsumerKey(consumerKey)
           .setOAuthConsumerSecret(consumerSecret)
           .setOAuthAccessToken(accessToken)
           .setOAuthAccessTokenSecret(accessSecret);
     try 
     {
          TwitterFactory factory = new TwitterFactory(cb.build());
          Twitter twitter = factory.getInstance();
          String[] srch = new String[] {"usernameoffriend"};
          ResponseList<User> users = twitter.lookupUsers(srch);
          for (User user : users) {
            System.out.println("Friend's Name " + user.getName()); // this print my friends name
                if (user.getStatus() != null) 
                {
                System.out.println("Friend timeline");
                List<Status> statusess = twitter.getFriendsTimeline();
                for (Status status3 : statusess) 
                 {
                        System.out.println(status3.getText());
                 }
    }
}

代码没有给出错误。但不是打印我朋友的时间线,而是打印我的自己的时间线。 我正在使用 getFriendsTimeline() 。那为什么它不打印我朋友的时间线。

提前谢谢你。

【问题讨论】:

    标签: java twitter twitter4j


    【解决方案1】:

    getFriendsTimeline() 在 twitter4j 的最新版本中已弃用,请使用 getUserTimeLine()

    所以要获取朋友的时间线:getUserTimeline("pseudo")

     ConfigurationBuilder cb = new ConfigurationBuilder();
               cb.setDebugEnabled(true)
                   .setOAuthConsumerKey(consumerKey)
                   .setOAuthConsumerSecret(consumerSecret)
                   .setOAuthAccessToken(accessToken)
                   .setOAuthAccessTokenSecret(accessSecret);
             try 
             {
                  TwitterFactory factory = new TwitterFactory(cb.build());
                  Twitter twitter = factory.getInstance();
                  String[] srch = new String[] {"usernameoffriend"};
                  ResponseList<User> users = twitter.lookupUsers(srch);
                  for (User user : users) {
                    System.out.println("Friend's Name " + user.getName()); // this print my friends name
                        if (user.getStatus() != null) 
                        {
                        System.out.println("Friend timeline");
                        List<Status> statusess = twitter.getUserTimeline(user.getName());
                        for (Status status3 : statusess) 
                         {
                                System.out.println(status3.getText());
                         }
            }
        }
    

    【讨论】:

    • @animuson with getUserTimeline("name") 对于某些名称,我正在获取正确的数据,对于某些名称,我正在获取时间线数据,知道我在这里做错了什么。我正在使用 twitter4j 版本 3.0.3
    • @animuson 通过使用用户 id 而不是 name.use user.getId() 而不是 user.getName() 解决了这个问题
    猜你喜欢
    • 2012-02-12
    • 2011-03-26
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多