2017-04-21 64 views
0

推文的作者獲得額外的鳴叫我想要做一個函數,例如從某個hashtag 5鳴叫,然後需要寫這些推文,並轉到他們的個人資料,然後從每個鳴叫用戶。Twitter4J

所以功能的步驟是:

  1. 獲取一些鳴叫從某個主題標籤。
  2. 轉到在井號標籤中編寫的每個用戶配置文件。
  3. 從每個用戶配置文件中獲取推文的數量。

如何在Java中執行此操作?

這是我正在處理的代碼,我想將以前的功能添加到它。

Query query = new Query("#World"); 
QueryResult result = twitter.search(query); 

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

回答

1

這是未經測試,但應該只需要很小的調整。我已經評論過代碼來解釋它在做什麼。

// Search 
final Query query = new Query("#World"); 
final QueryResult result = twitter.search(query); 

int numTweetsFromHashtag = 0; 
for (Status status : result.getTweets()) 
{ 
    // If we've met our limit for the hashtag stop 
    numTweetsFromHashtag++; 
    if (numTweetsFromHashtag > 5) break; 

    // Create a limit of tweets to get for the user 
    final Paging paging = new Paging(1, 10 /*< num tweets per user*/); 
    // Get that number of tweets 
    final List<Status> tweets = twitter.getUserTimeline(
     status.getUser().getScreenName(), paging 
    ); 

    // Loop over all the tweets we just got and print them 
    for(final Status tweet : tweets) 
    { 
     System.out.println(tweet.getText()); 
    } 
} 
+1

感謝您的迴應Michael先生。我已經嘗試過你的代碼,並且似乎最後一個for循環出現錯誤。它表示變量「tweet」未初始化。我該如何解決它? –

+0

@Nour_em沒問題。啊,是的,只是一個愚蠢的語法錯誤。我編輯了我的答案。 – Michael

0

我編輯Mr.Michael代碼有點因爲它給我一個錯誤。這是代碼的工作版本:

// Search 
final Query query = new Query("#World"); 
final QueryResult result = twitter.search(query); 

int numTweetsFromHashtag = 0; 
for (Status status : result.getTweets()) 
{ 
    // If we've met our limit for the hashtag stop 
    numTweetsFromHashtag++; 
    if (numTweetsFromHashtag > 5) break; 

    // Create a limit of tweets to get for the user 
    final Paging paging = new Paging(1, 10 /*< num tweets per user*/);  

    // Get that number of tweets 
    final List<Status> tweets = twitter.getUserTimeline(
    status.getUser().getScreenName(), paging 
    ); 

    // Loop over all the tweets we just got and print them 
    for(Status tweet : tweets) 
    { 
     System.out.println(tweet.getUser().getName()+"-------- 
    "+tweet.getText()+"--------"+"\n\n"); 
    } 

}