如何通过java中的twitter api获取用户自己twitter帐户的时间线

如何通过java中的twitter api获取用户自己twitter帐户的时间线,twitter,Twitter,我一直试图通过博客中解释的一些Java代码来获取时间线消息,并用Java编写了一些代码 我只使用应用程序身份验证,并使用使用者密钥和使用者机密。这是我的代码的一部分,我在这里请求承载令牌: BealerToken=请求BealerToken 这条路对吗?我这样问是因为在requestBearerToken方法中 private static String requestBearerToken(String endPointUrl) throws IOException {

我一直试图通过博客中解释的一些Java代码来获取时间线消息,并用Java编写了一些代码

我只使用应用程序身份验证,并使用使用者密钥和使用者机密。这是我的代码的一部分,我在这里请求承载令牌:

BealerToken=请求BealerToken

这条路对吗?我这样问是因为在requestBearerToken方法中

private static String requestBearerToken(String endPointUrl) throws IOException {

            HttpsURLConnection connection = null;                                                          

            URL url = new URL(endPointUrl);

            connection = (HttpsURLConnection) url.openConnection(); 
            try {
                 connection.getInputStream();

            } catch(IOException e){
                System.out.println("IOException");
            }

我不断得到一个IOException,这意味着我没有从connection对象获得输入流。请帮我获取推文。

是的,我已经找到了一种使用twitter4j api的方法。一旦你在dev.twitter.com/apps中注册你的应用程序,你就可以获得消费者密钥、消费者秘密、访问令牌和访问秘密

import twitter4j.ResponseList;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.Status;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;

public class SimpleCrawler {

    static ResponseList<Status> statuses;                      
    public static void main(String[] args) throws TwitterException {               
        ConfigurationBuilder cb=new ConfigurationBuilder();                              
        cb.setDebugEnabled(true)
                .setOAuthConsumerKey("your consumer key")
                .setOAuthConsumerSecret("your con secret")
                .setOAuthAccessToken("your access token")
                .setOAuthAccessTokenSecret("access token secret");
        TwitterFactory tf=new TwitterFactory(cb.build());        
        Twitter tw = tf.getInstance();                
        try {
            statuses=tw.getHomeTimeline();
            System.out.println("Connected to twitter");
        } catch (TwitterException e) {
            System.out.println("Cannot connect to Twitter");
            System.exit(0);
        }              
        System.out.println("Reading TimeLine...");                       
        for(Status st1:statuses){                                                
           String data[]={st1.getUser().getName(),String.valueOf(st1.getCreatedAt()),twtmsg};                 
           System.out.println(data);
         }                                               
    }

}

通过twitter api也有可能,但不知道。此方法的一个问题是,它一次只能获取20条推文,任何帮助都将不胜感激。建议是最受欢迎的plz评论。

您需要使用分页:

 Paging paging = new Paging();
 paging.setPage(1);
 ResponseList<Status> statuses = twitter.getHomeTimeline(paging);
 System.out.println(statuses.size());
 paging.setPage(2);
 statuses.addAll(twitter.getHomeTimeline(paging));
 System.out.println(statuses.size());

上述简化代码将为您提供两页的状态信息

谢谢@Tony Kennah。