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

时间:2015-01-13 08:41:15

标签: twitter

我一直试图通过http://www.dreamincode.net/forums/blog/114/entry-4459-demo-of-twitter-application-only-oauth-authentication-using-java博客中解释的一些Java代码获取我的时间线消息,并用Java编写了一些代码。

我正在使用仅应用程序身份验证并使用使用者密钥和使用者密钥。以下是我请求持票人令牌的部分代码:

  

bearerToken = requestBearerToken( “https://api.twitter.com/1.1/statuses/besra_u_timeline.json”);

这是正确的方法吗?我问因为在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,这意味着我没有从连接对象获取输入流。请帮我拿推文。

2 个答案:

答案 0 :(得分:0)

我有一种方法可以使用twitter4j api.Consumer密钥,消费者密钥,访问令牌和访问密码,你可以在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条推文,任何帮助都会受到赞赏。建议最受欢迎。请注意。

答案 1 :(得分:0)

您需要使用分页:

 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());

以上简化代码将为您提供两页statuses