我一直试图通过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,这意味着我没有从连接对象获取输入流。请帮我拿推文。
答案 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