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