Edited at

Android再入門 - Twitterクライアントを作ってみよう - Twitter4Jのダウンロードと準備

More than 5 years have passed since last update.


はじめにここでは、プロジェクトの作成とTwitter APIをJavaから簡単に扱える神ライブラリであるTwitter4JのダウンロードとAndroidアプリへの組み込みを行います。


新しいプロジェクトを作成する

Eclipseで新しいプロジェクトを作成します。今回のサンプルアプリは、特にバージョンに依存することはないので適当なバージョンでOKです。プロジェクト名を入力してバージョンを選んだ以降は、全てデフォルトのまま進んでください。

プロジェクトの作り方が分からないという方は、 Android再入門 - 目次 #Android - Qiita をひと通りやってからTwitterクライアントに挑戦した方が良いです。

時間がなくてプロジェクトの作成だけ知りたい人は Android再入門 - プロジェクトの作成 #Android - Qiita をどうぞ。


Twitter4Jをダウンロードしてプロジェクトに追加


  1. http://twitter4j.org/ja/index.html にアクセスして、「ダウンロード」の「・最新安定バージョン」にある.zipファイルをダウンロードします。



  2. ダウンロードして.zipファイルを解凍して lib/ディレクトリにある twitter4j-core-3.0.3.jar をプロジェクトのlibs/ディレクトリに置きます。




Javadocやソースコードを添付する

必須ではありませんが、ライブラリのJavadocやソースコードを添付してEclipseで見られるようにする方法を紹介します。



  1. まず、Javadocやソースコードのファイルをlibs/ディレクトリ以外の適当なディレクトリに置きます。libs/ディレクトリに置くとエラーになるので注意してください。今回は、twitter4j-core-3.0.3.jarのJavadocやソースコードのファイルを置いてみましょう。それぞれダウンロードして解凍したディレクトリの中のtwitter4j-core/ディレクトリに入っています。

    Javadoc: twitter4j-core-3.0.3-javadoc.jar

    ソースコード: twitter4j-core-3.0.3-sources.jar

    これをプロジェクトに適当なディレクトリを作って置きます(今回はlibs_meta/という名前でディレクトリを作りました)。名前が微妙かもしれませんが決まりはないので自由です。




  2. 添付したい.jarのファイル名+.propertiesという名前のファイルをlibs/ディレクトリに作る。今回の場合だと、twitter4j-core-3.0.3.jar.propertiesという名前になります。




  3. 作った.propertiesファイルにJavadocやソースコードのファイルパスを設定する。


    twitter4j-core-3.0.3.jar.properties

    src=../libs_meta/twitter4j-core-3.0.3-sources.jar
    
    doc=../libs_meta/twitter4j-core-3.0.3-javadoc.jar




  4. Eclipseを再起動する。

    これでTwitter4Jのクラス名やメソッド名にカーソルを合わせるとJavadocが表示されたり、定義にジャンプすればソースコードを読むことができるようになります。




Twitter4Jを使う準備

Twitter4JのコアになるTwitterインスタンスを作る処理を1箇所にまとめるためにユーティリティなクラスを作りたいと思います。

このクラスは以下のメソッドを提供します。


  1. Twitterインスタンスの取得

  2. アクセストークンの保存

  3. アクセストークンの読込

  4. アクセストークンが保存されているか確認


TwitterUtilsクラスを作る


  1. TwitterUtilsという名前で新しいクラスを作成します。


  2. 以下のようにそれぞれメソッドを定義します。



TwitterUtils.java


package com.example.mytwitter;

import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class TwitterUtils {

private static final String TOKEN = "token";
private static final String TOKEN_SECRET = "token_secret";
private static final String PREF_NAME = "twitter_access_token";

/**
* Twitterインスタンスを取得します。アクセストークンが保存されていれば自動的にセットします。
*
* @param context
* @return
*/

public static Twitter getTwitterInstance(Context context) {
String consumerKey = context.getString(R.string.twitter_consumer_key);
String consumerSecret = context.getString(R.string.twitter_consumer_secret);

TwitterFactory factory = new TwitterFactory();
Twitter twitter = factory.getInstance();
twitter.setOAuthConsumer(consumerKey, consumerSecret);

if (hasAccessToken(context)) {
twitter.setOAuthAccessToken(loadAccessToken(context));
}
return twitter;
}

/**
* アクセストークンをプリファレンスに保存します。
*
* @param context
* @param accessToken
*/

public static void storeAccessToken(Context context, AccessToken accessToken) {
SharedPreferences preferences = context.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString(TOKEN, accessToken.getToken());
editor.putString(TOKEN_SECRET, accessToken.getTokenSecret());
editor.commit();
}

/**
* アクセストークンをプリファレンスから読み込みます。
*
* @param context
* @return
*/

public static AccessToken loadAccessToken(Context context) {
SharedPreferences preferences = context.getSharedPreferences(PREF_NAME,
Context.MODE_PRIVATE);
String token = preferences.getString(TOKEN, null);
String tokenSecret = preferences.getString(TOKEN_SECRET, null);
if (token != null && tokenSecret != null) {
return new AccessToken(token, tokenSecret);
} else {
return null;
}
}

/**
* アクセストークンが存在する場合はtrueを返します。
*
* @return
*/

public static boolean hasAccessToken(Context context) {
return loadAccessToken(context) != null;
}
}



リソースファイルにConsumer key/secretを定義する。

上記のままでは、R.string.twitter_consumer_keyとR.string.twitter_consumer_secretが未定義なのでエラーになるはずです。Twitterデベロッパーサイトでアプリを登録してメモっておいたConsumer keyとConsumer secretをリソースファイルに定義しましょう。


  1. res/values/strings.xmlを開いて以下のようにConsumer keyとConsumer secretを追加します。


res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">MyTwitter</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="twitter_consumer_key">ここにConsumer key</string>
<string name="twitter_consumer_secret">ここにConsumer secret</string>

</resources>


以上でTwitter4Jのダウンロードと準備は完了です。お疲れ様でした!

目次へ戻る