2017-04-21 4 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 루프에 오류가있는 것처럼 보입니다. 변수 "짹짹"초기화되지 않았습니다 말한다. 어떻게 해결할 수 있습니까? –

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

}