結果としては以下のようなコードでユーザーのタイムラインが取得できた。 StatusNetはBasic認証でも認証ができるので今回はその方法を使った。
- import twitter4j.ResponseList;
- import twitter4j.Status;
- import twitter4j.Twitter;
- import twitter4j.TwitterException;
- import twitter4j.TwitterFactory;
- import twitter4j.User;
- import twitter4j.auth.BasicAuthorization;
- import twitter4j.conf.Configuration;
- import twitter4j.conf.ConfigurationBuilder;
- public class TwitterConsole {
- public static void main(String[] args) {
- try {
- TwitterConsole app = new TwitterConsole();
- app.start();
- } catch(Throwable ex) {
- ex.printStackTrace(System.err);
- }
- }
- private void start() throws TwitterException {
- // StatusNetのAPIのBase URL
- String baseURL = "http://localhost/statusnet/api/";
- // Twitter4J設定。APIのBase URLをStatusNetのサーバーに変更
- ConfigurationBuilder cb = new ConfigurationBuilder();
- cb.setRestBaseURL(baseURL);
- cb.setIncludeEntitiesEnabled(true);
- cb.setJSONStoreEnabled(true);
- Configuration conf = cb.build() ;
- // Basic認証で認証する
- BasicAuthorization auth = new BasicAuthorization("username", "password");
- Twitter twitter = new TwitterFactory(conf).getInstance(auth);
- // ユーザーのタイムラインを取得
- ResponseList<status> tweets = twitter.getHomeTimeline();
- // 取得したタイムラインを表示
- int i = 0;
- for(Status tweet : tweets) {
- i++;
- User tweetuser = tweet.getUser();
- System.out.printf("[%d] %s %s%n%s%n-----------%n",
- tweet.getId(), // 投稿ID
- tweet.getCreatedAt().toString(), // 投稿時刻
- tweetuser.getName(), // 投稿者
- tweet.getText()); // 投稿内容
- }
- }
- }
- </status>
0 件のコメント:
コメントを投稿