CodeZine(コードジン)

特集ページ一覧

AndroidアプリからTwitter APIを利用するには

Web APIで楽々Androidアプリ(10)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/06/10 14:00
目次

プロジェクトの作成

 では、Androidアプリケーションのプロジェクトを新規作成しましょう。Eclipseの[新規]-[Androidアプリケーション・プロジェクト]を選択します。今回は「Trendwatcher」という名前で作成し、アクティビティは[Blank Activity]を選択しました。このスケルトンのアプリケーションに、必要なコードを追加していきます。

新規Androidアプリケーション
新規Androidアプリケーション
Blank Activityの設定
Blank Activityの設定

ライブラリの追加

 Twitter4Jのサイトから、ライブラリ(執筆時点では、twitter4j-4.0.1.zip)をダウンロードします。

 zipファイルを解凍すると、多くのファイルが生成されますが、今回のアプリでは、 libフォルダにできるtwitter4j-core-4.0.1.jarというファイルのみ使用します。これを、プロジェクトのlibsフォルダにコピーしておきます。

 twitter4j-core-4.0.1.jarには、Twitter APIを利用するための、基本的なコードが含まれています。

permissionの追加

 Twitter APIを利用するには、インターネットへのアクセスが必要ですので、アプリケーションのpermissionの設定をしておきます。AndroidManifest.xmlに、次の行を追加します。

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>

レイアウトの変更

 最新のADTでアプリケーションを新規作成すると、フラグメント(fragment_main.xml)を使用したスケルトンアプリケーションになります。今回のアプリでは、このfragment_main.xmlに、ボタンとリストビューを追加します。

fragment_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.rakuraku.android.Twitter.MainActivity$PlaceholderFragment" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/trend_button" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</LinearLayout>

 なお、スケルトンアプリケーションでは、フラグメントはRelativeLayoutとなっていますが、ボタンとListViewを縦に配置するため、LinearLayoutに変更します。

 LinearLayoutは、向き(orientation)を縦(vertical)にし、横幅(layout_width)と高さ(layout_height)をともに、画面いっぱい(match_parent)に設定しています。

 ボタンは横幅を画面いっぱいに指定し、高さを自動調整(wrap_content)にしています。

 リストビューでは、横幅、高さとも、画面いっぱいに指定します。

Twitterオブジェクトの生成

 ここからはコードの追加です。まずは、Twitter4Jライブラリの初期化処理である、Twitterオブジェクトの生成を行います。

 Twitterオブジェクトは、Twitter4Jライブラリのメインのオブジェクトです。このオブジェクトの生成時に、OAuth認証用の4つのキーコード(consumerKey、consumerSecret、accessToken、accessTokenSecret)を設定します。

 キーの設定には、プロパティファイルに記述する方法と、プログラム内で直接指定する方法の2つあります。今回のアプリケーションでは、プログラム内に記述しています。

MainActivity.java
public static class PlaceholderFragment extends Fragment {

    // Twitterオブジェクト
    private Twitter twitter = null;

    public PlaceholderFragment() {

        // OAuth認証用設定(1)
        ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

        configurationBuilder.setOAuthConsumerKey("XXXXX");
        configurationBuilder.setOAuthConsumerSecret("XXXXX");
        configurationBuilder.setOAuthAccessToken("XXXXX");
        configurationBuilder.setOAuthAccessTokenSecret("XXXXX");

        // Twitterオブジェクトの初期化(2)
        this.twitter =
            new TwitterFactory(configurationBuilder.build()).getInstance();
    }
}

 ConfigurationBuilderというクラスを利用して、必要な4つのキーコードを設定します(1)。そして、TwitterFactoryクラスのgetInstanceメソッドで、Twitterオブジェクトを生成します(2)

 なお、ここでconfigurationBuilder.build()を指定しない場合、プロパティファイル(twitter4j.properties)から自動的に設定が読み込まれます。

PlaceholderFragmentについて

 前述のサンプルコードは、MainActivity.java内のコードですが、PlaceholderFragmentというフラグメントクラスの定義と、コンストラクタになっています。

 スケルトンアプリでは、フラグメントクラス(PlaceholderFragment)は、アクティビティクラス(MainActivity)の内部で、定義されています。

最後に

 今回は、主にTwitter APIを利用するための準備編でした。次回は、Twitter4Jライブラリを非同期で実行する部分など、残りのコードを解説していきます。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Web APIで楽々Androidアプリ

もっと読む

著者プロフィール

  • WINGSプロジェクト 高江 賢(タカエ ケン)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5