2017-04-21 7 views
0

例えば、特定のハッシュタグから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

あなたのお返事ありがとうございます。あなたのコードを試してみたところ、最後の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"); 
    } 

} 
関連する問題