Program Resource

開発者向け各種コード、アルゴリズム、リソース情報ライブラリ もしくはねふぁの覚え書き

Androidで特定ユーザーのTweetを簡易的に取得したい場合の方法、v1.1/認証対応。
本APIは制約があり、同一IPからの取得は15分あたり15回までとなっている。

v1.0のAPIが2013/6/11に完全にサービス停止されてしまい焦ったが、twitter4jのライブラリを利用する事で簡単に取得する事ができた。

自分用のアプリやおまけ程度の機能として。筆者はまぃまとのトップ画面でTweetをおまけ表示するのに使っている。

参考サイト
http://morado106.blog106.fc2.com/blog-entry-58.html
http://stackoverflow.com/questions/12916539/simplest-php-example-retrieving-user-timeline-with-twitter-api-version-1-1

まず、Twitter4jのライブラリをダウンロードし、jarファイルをプロジェクトのlibsフォルダーにコピーする。

Tweeter4j
http://twitter4j.org/ja/index.html

次に、認証用のキーを取得する。

https://dev.twitter.com/apps

にアクセスしログオン後、「Create a new application」でアプリ情報を追加(Tweet情報を取得するアプリ)し、OAuth Settingsからキーを4つ取得する。

取得したキーは下記コードのCunsumerKey等にそのまま記述する。

public void init_fetch_tweet(String tweet_user_id,int tweet_num) {

	try {
   		String strConsumerKey = "*********";
   		String strConsumerSecret = "*********";
   		String strAccessToken = "*********";
   		String strAccessTokenSecret = "*********";

   		ConfigurationBuilder confbuilder  = new ConfigurationBuilder();
   		confbuilder.setOAuthConsumerKey(strConsumerKey);
   		confbuilder.setOAuthConsumerSecret(strConsumerSecret);
   		confbuilder.setOAuthAccessToken(strAccessToken);
   		confbuilder.setOAuthAccessTokenSecret(strAccessTokenSecret);

   		Twitter twitter = new TwitterFactory(confbuilder.build()).getInstance();
   		List<Status> statuses = twitter.getUserTimeline(tweet_user_id,new Paging(1,tweet_num));
   		int count=0;
   		Collections.reverse(statuses); //reverse order
   		for (Status status : statuses){
       		String tweettext = status.getUser().getName()+":"+status.getText()+"\n ("+status.getCreatedAt().toLocaleString()+")";
       		//now single tweet is in tweettext
   		}
	catch(Exception ex){
		//failed to fetch tweet
	}
}

This post is also available in: 英語

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*