2013-08-27 92 views
4

我使用Twitter流API從用戶獲取鳴叫。我有用戶標識列表我如何從TwitterStream API獲取推文列表。我分析了下面的示例Twitter流API以獲取用戶鳴叫

public class TwitterStreamAPI { 

    public static void main(String[] args) { 
     ConfigurationBuilder cb = new ConfigurationBuilder(); 
     cb.setDebugEnabled(true); 
     cb.setOAuthConsumerKey("xxxx"); 
     cb.setOAuthConsumerSecret("xxx"); 
     cb.setOAuthAccessToken("xxx"); 
     cb.setOAuthAccessTokenSecret("xxx"); 

     TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance(); 

     UserStreamListener listener = new UserStreamListener() { 
      @Override 
      public void onStatus(Status status) { 
       System.out.println("onStatus @" + status.getUser().getScreenName() + " - " + status.getText()); 
      } 

      @Override 
      public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) { 
       //System.out.println("Got a status deletion notice id:" + statusDeletionNotice.getStatusId()); 
      } 

      @Override 
      public void onDeletionNotice(long directMessageId, long userId) { 
       // System.out.println("Got a direct message deletion notice id:" + directMessageId); 
      } 

      @Override 
      public void onTrackLimitationNotice(int numberOfLimitedStatuses) { 
       // System.out.println("Got a track limitation notice:" + numberOfLimitedStatuses); 
      } 

      @Override 
      public void onScrubGeo(long userId, long upToStatusId) { 
       // System.out.println("Got scrub_geo event userId:" + userId + " upToStatusId:" + upToStatusId); 
      } 

      @Override 
      public void onStallWarning(StallWarning warning) { 
       // System.out.println("Got stall warning:" + warning); 
      } 

      @Override 
      public void onFriendList(long[] friendIds) { 
       /*System.out.print("onFriendList"); 
       for (long friendId : friendIds) { 
        System.out.print(" " + friendId); 
       } 
       System.out.println();*/ 
      } 

      @Override 
      public void onFavorite(User source, User target, Status favoritedStatus) { 
       /* System.out.println("onFavorite source:@" 
         + source.getScreenName() + " target:@" 
         + target.getScreenName() + " @" 
         + favoritedStatus.getUser().getScreenName() + " - " 
         + favoritedStatus.getText());*/ 
      } 

      @Override 
      public void onUnfavorite(User source, User target, Status unfavoritedStatus) { 
       /*System.out.println("onUnFavorite source:@" 
           + source.getScreenName() + " target:@" 
           + target.getScreenName() + " @" 
           + unfavoritedStatus.getUser().getScreenName() 
           + " - " + unfavoritedStatus.getText());*/ 
      } 

      @Override 
      public void onFollow(User source, User followedUser) { 
       /*System.out.println("onFollow source:@" 
         + source.getScreenName() + " target:@" 
         + followedUser.getScreenName());*/ 
      } 

      @Override 
      public void onDirectMessage(DirectMessage directMessage) { 
       /* System.out.println("onDirectMessage text:" 
         + directMessage.getText());*/ 
      } 

      @Override 
      public void onUserListMemberAddition(User addedMember, User listOwner, UserList list) { 
       /*System.out.println("onUserListMemberAddition added member:@" 
         + addedMember.getScreenName() 
         + " listOwner:@" + listOwner.getScreenName() 
         + " list:" + list.getName());*/ 
      } 

      @Override 
      public void onUserListMemberDeletion(User deletedMember, User listOwner, UserList list) { 
       /* System.out.println("onUserListMemberDeleted deleted member:@" 
         + deletedMember.getScreenName() 
         + " listOwner:@" + listOwner.getScreenName() 
         + " list:" + list.getName());*/ 
      } 

      @Override 
      public void onUserListSubscription(User subscriber, User listOwner, UserList list) { 
       /*System.out.println("onUserListSubscribed subscriber:@" 
         + subscriber.getScreenName() 
         + " listOwner:@" + listOwner.getScreenName() 
         + " list:" + list.getName());*/ 
      } 

      @Override 
      public void onUserListUnsubscription(User subscriber, User listOwner, UserList list) { 
       /*System.out.println("onUserListUnsubscribed subscriber:@" 
         + subscriber.getScreenName() 
         + " listOwner:@" + listOwner.getScreenName() 
         + " list:" + list.getName());*/ 
      } 

      @Override 
      public void onUserListCreation(User listOwner, UserList list) { 
       /*System.out.println("onUserListCreated listOwner:@" 
         + listOwner.getScreenName() 
         + " list:" + list.getName());*/ 
      } 

      @Override 
      public void onUserListUpdate(User listOwner, UserList list) { 
       /*System.out.println("onUserListUpdated listOwner:@" 
         + listOwner.getScreenName() 
         + " list:" + list.getName());*/ 
      } 

      @Override 
      public void onUserListDeletion(User listOwner, UserList list) { 
       /*System.out.println("onUserListDestroyed listOwner:@" 
         + listOwner.getScreenName() 
         + " list:" + list.getName());*/ 
      } 

      @Override 
      public void onUserProfileUpdate(User updatedUser) { 
       //System.out.println("onUserProfileUpdated user:@" + updatedUser.getScreenName()); 
      } 

      @Override 
      public void onBlock(User source, User blockedUser) { 
       /*System.out.println("onBlock source:@" + source.getScreenName() 
         + " target:@" + blockedUser.getScreenName());*/ 
      } 

      @Override 
      public void onUnblock(User source, User unblockedUser) { 
       /*System.out.println("onUnblock source:@" + source.getScreenName() 
         + " target:@" + unblockedUser.getScreenName());*/ 
      } 

      @Override 
      public void onException(Exception ex) { 
       /* ex.printStackTrace(); 
       System.out.println("onException:" + ex.getMessage());*/ 
      } 
     }; 

     String useIds[] = {"99901654"}; 




     twitterStream.addListener(listener); 
    twitterStream.user(useIds); 
    } 
} 

https://github.com/yusuke/twitter4j/blob/master/twitter4j-examples/src/main/java/twitter4j/examples/stream/PrintUserStream.java

,但它不打印狀態

+1

同一問題在這裏。我知道我聽的用戶在聽我的時候會聽到我的個人資料。自2013年以來有何更新?謝謝。 – toni07

回答

2

的流式API爲您提供實時事件,因此,如果沒有用戶的過程中你的時間鳴叫聽你不會看到任何輸出。

如果您是不是想獲取一個用戶的歷史鳴叫考慮使用Twitter#getUserTimeline(screenName)代替,例如:

final Twitter twitter = new TwitterFactory().getInstance(); 
final List<Status> statuses = twitter.getUserTimeline(screenName); 

for (Status status : statuses) { 
    System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText()); 
} 

請參見本example進一步的細節。

0

我已經在here中詳細解答了。請檢查一下。這將向您展示如何使用所需的訪問令牌來閱讀和更新Twitter。

簡而言之,這些步驟如下

  1. 木箱上https://apps.twitter.com/app/new一個Twitter的應用程序,讓你的消費者的關鍵。 (如果您碰到某處,請按照提及的博客。)
  2. 使用Twitter4j API獲取授權URL,點擊它並獲取PIN碼。 (所需的代碼在您的參考號下面提到)
  3. 輸入密碼並獲取密碼
  4. 現在我們可以閱讀或更新Twitter資訊提供。 (根據您在創建Twitter應用時設置的訪問級別)

請檢查此處以獲取示例代碼。 https://stackoverflow.com/a/40691881/2405670