2017-04-21 44 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"); 
    } 

}