結果としては以下のようなコードでユーザーのタイムラインが取得できた。 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 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()); // 投稿内容
}
}
}
0 件のコメント:
コメントを投稿