2012-01-13 21 views
1

我已經開始學習Twitter4j API,並從Twitter獲取所有憑據和令牌以使用它。 現在我正在嘗試使用一個簡單的java程序來獲取我的朋友的時間線並將其打印在控制檯上。使用Twitter4j API獲取朋友的時間軸

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

該代碼沒有給出錯誤。但不是打印我朋友的時間軸,而是打印MY自己的時間軸。我使用getFriendsTimeline()。那爲什麼它不打印我的朋友的時間表。

預先感謝您。

回答

7

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()); 
        } 
     } 
    } 
+0

感謝Raffel.It工作。 :) – vikiiii 2012-01-30 06:14:23

+0

@animuson與getUserTimeline(「名稱」)我是一些名字我得到正確的數據和一些名字我得到我的時間線數據任何想法我在做什麼錯在這裏。我正在使用twitter4j版本3.0.3 – gusaindpk 2013-06-19 06:48:49

+0

@animuson通過使用用戶ID而不是name.use user.getId()而不是user.getName()來解決問題。 – gusaindpk 2013-06-19 07:22:28