Google Data Java クライアント ライブラリを使ってみる

Google Data API チーム、Stephanie Liu 氏
2007 年 9 月
  1. はじめに
  2. 依存関係のインストール
    1. Windows の場合
    2. Mac OS X の場合
    3. Linux の場合
  3. Google データ クライアント ライブラリのインストール
  4. サンプルの実行
  5. 独自のアプリケーションの構築
  6. まとめ
  7. 付録: 環境変数の設定

はじめに

馴染みのない API を使って簡単に開発を始めることができます。この記事では、Google Data API(GData)Java クライアント ライブラリをダウンロードしてインストールする方法について説明します。すべての依存関係を取得し、必要な環境変数を設定します。さまざまな GData サービスを短時間でマッシュアップできます。

Eclipse を使用している場合

シェードでのコーディング: Google Data API での Eclipse の使用に関する記事をご覧ください。

依存関係のインストール

GData Java クライアント ライブラリには次の外部依存関係があります。以下のセクションでは、こうした依存関係をお気に入りのオペレーティング システム(または作業に滞っている OS)にインストールする方法について説明します。

  • JDK(Java Development Kit)バージョン 1.5 以降
  • Apache Ant バージョン 1.7 以降
  • Sun の JavaMail API 1.4 以降で mail.jar
  • Sun の JavaBeansActivationFramework にある activation.jarこれは、Document List Data API、Picasa Web Album API、YouTube Data API など、メディア固有の API でのみ必要です。
  • Sun の サーブレット API バージョン 2.3 以降の servlet.jar。これは、「sample.authsub」または「sample.gbase.recipe」パッケージでコードサンプルを実行する場合にのみ必要です。

.jar 依存関係の中には、特定のサンプルにのみ必要なものもありますが、ビルドエラーを回避するため、すべてを取得するのが最善です。続行するには、WindowsMac OS XLinux のいずれかのオペレーティング システムを選択してください。

Windows オペレーティング システム用の手順。

Java のインストール

Java 開発パッケージは、JDK(Java Development Kit)の形式で Sun から入手できます。JRE(Java ランタイム環境)と、Java アプリケーションの作成、コンパイル、テスト、デバッグに必要なその他の機能がすべて含まれています。Java がすでにインストールされている場合は、Ant のインストールに進みます。

注: JDK をインストールするには、管理者権限が必要です。

  1. http://java.sun.com/javase/downloads/index.jsp にアクセスします。
  2. 最新情報の横にある [ダウンロード] をクリックします。
  3. 本契約を読んで同意します。
  4. Windows インストール ファイルのいずれかをダウンロードします。
  5. インストーラを実行します。
  6. javac などの JDK 実行可能ファイルを簡単に実行できるように、Path 環境変数を編集します。追加するパスは C:\jdk\bin\ のようになります。Windows で Path 変数を編集する手順については、付録をご覧ください。

JDK のインストールで問題が発生した場合は、Sun のウェブサイトで詳細なインストール手順を確認してください。

Ant をインストールする

Apache Ant は Java 用のビルドツールで、make に似ていますが、ライブラリの構築とサンプルの実行に使用します。すでに Ant がインストールされている場合は、バージョン 1.7 以降であることを確認してください。

  1. [スタート] メニュー、[ファイル名を指定して実行] の順にクリックします。
  2. テキスト フィールドに「cmd」と入力します。
  3. お使いのバージョンを確認するには、プロンプトに「ant -version」と入力します。

バージョン 1.7 以降をご利用の場合は、mail.jar を入手するに進んでください。Ant のバージョンが 1.7 より前、またはまだインストールされていない場合は、以下の手順に沿ってください。

  1. http://ant.apache.org/bindownload.cgi にアクセスします。
  2. .zip のダウンロード リンクをクリックします。
  3. すべてのファイルを任意の場所(C:\ant など)に抽出します。
  4. C:\ant\bin のような ant bin ディレクトリを、Path環境変数に追加します。
  5. ANT_HOME 環境変数を追加または編集して、新しい場所に設定します(例: C:\ant)。
  6. Java がインストールされている JAVA_HOME 環境変数を追加または編集します(例: C:\jdk)。

問題が発生した場合は、Ant のウェブサイトで詳細なインストール手順をご覧ください。

mail.jar を取得する

メディアサポートのために JavaMail API が含まれています。

  1. http://java.sun.com/products/javamail/downloads/index.html にアクセスします。
  2. [ダウンロード] ボタンをクリックします。バージョン 1.4 以降をダウンロードしていることを確認します。
  3. 本契約を読んで同意します。
  4. JavaMail を含む .zip ファイルのリンクをクリックします。
  5. ファイルをパソコンに展開し、場所を確認します。mail.jar はルート ディレクトリ javamail-(version) にあります。

activation.jar を取得する

メディア サポートには JavaBeans アクティベーション フレームワークが含まれています。

  1. JAF のダウンロード ページにアクセスします。
  2. [ダウンロード] ボタンをクリックします。
  3. 本契約を読んで同意します。
  4. アクティベーション フレームワークを含む .zip ファイルのリンクをクリックします。
  5. ファイルをパソコンに展開し、場所を確認します。activation.jar はルート ディレクトリ jaf-(version) にあります。

サーブレット.jar を取得する

servlet.jarservlet-api.jar と呼ばれることもあります)サーブレット コンテナ(J2EE、Tomcat、WebLogic など)にあります。AuthSub と Google Base のサンプルに使用されます。Tomcat 6.x を入手するには、以下の手順を実施します。

  1. http://tomcat.apache.org/download-60.cgi にアクセスします。
  2. [Core Binary Distributions] で [Windows Service Installer のダウンロード] をクリックします。
  3. インストーラを実行します。
  4. デフォルトのままにした場合は、servlet-api.jarC:\Program Files\Apache Software Foundation\Tomcat 6.0\lib に配置する必要があります

Tomcat の設定とインストールに関するドキュメントについては、こちらをご覧ください。

これで、GData Java クライアント ライブラリをインストールする準備ができました。

Mac OS X オペレーティング システム向けの手順です。

Java のインストール

Mac OS X であれば、作業負担が軽減されます。Apple には、すべてのインスタンスに構成済みで使いやすい JDK(Java Development Kit)が含まれています。詳しくは、Apple の Java サイトをご覧ください。

Ant をインストールする

Apache Ant は Java 用のビルドツールで、make に似ていますが、ライブラリの構築とサンプルの実行に使用します。Ant はすでにインストールされているかもしれませんが、バージョン 1.7 以降を使用していることを確認してください。

  1. ターミナル ウィンドウを開きます。(Command + Space キーを押し、「Terminal」と入力してアプリケーションを探します)。
  2. コマンド プロンプトで、次のように入力します。
  3. ant -version

実行中の ant が 1.7 より前のバージョンである場合は、以下の手順で最新バージョンを入手してください。

  1. http://ant.apache.org/bindownload.cgi にアクセスします。
  2. .zip のダウンロード リンクをクリックします。
  3. ターミナル ウィンドウを開きます。(Command + Space キーを押し、「Terminal」と入力してアプリケーションを探します)。
  4. コマンド プロンプトで、次のように入力します。
    • cd ~/Desktop
    • sudo sh
    • mv apache-ant-(version)-bin.zip /usr/local/
    • cd /usr/local/
    • unzip apache-ant-(version)-bin.zip
    • chown (your account name):(your account name) apache-ant-(version)
    • ln -s apache-ant-(version) ant

問題が発生した場合は、Ant のウェブサイトで詳細なインストール手順をご覧ください。このシェルコマンドの意味については、こちらのブログ投稿でも詳しく説明しています。

mail.jar を取得する

メディアサポートのために JavaMail API が含まれています。

  1. http://java.sun.com/products/javamail/downloads/index.html にアクセスします。
  2. [ダウンロード] ボタンをクリックします。バージョン 1.4 以降をダウンロードしていることを確認します。
  3. 本契約を読んで同意します。
  4. JavaMail を含む .zip ファイルのリンクをクリックします。
  5. ファイルをパソコンに展開し、場所を確認します。mail.jar はルート ディレクトリ javamail-(version) にあります。

activation.jar を取得する

メディア サポートには JavaBeans アクティベーション フレームワークが含まれています。

  1. JAF のダウンロード ページにアクセスします。
  2. [ダウンロード] ボタンをクリックします。
  3. 本契約を読んで同意します。
  4. アクティベーション フレームワークを含む .zip ファイルのリンクをクリックします。
  5. ファイルをパソコンに展開し、場所を確認します。activation.jar はルート ディレクトリ jaf-(version) にあります。

サーブレット.jar を取得する

servlet.jarservlet-api.jar と呼ばれることもあります)サーブレット コンテナ(J2EE、Tomcat、WebLogic など)にあります。AuthSub と Google Base のサンプルに使用されます。Tomcat 6.x を入手するには、以下の手順を実施します。

  1. http://tomcat.apache.org/download-60.cgi にアクセスします。
  2. Core Binary Distribution で .zip ダウンロードをクリックします。
  3. ファイルをパソコンに展開し、場所を確認します。servlet.jarapache-tomcat-(version)/lib 配下にあります。

Tomcat の設定とインストールに関するドキュメントについては、こちらをご覧ください。

これで、GData Java クライアント ライブラリをインストールする準備ができました。

Linux オペレーティング システム用の手順。

Java のインストール

このチュートリアルでは、Sun の JDK(Java Development Kit)を使用します。root 権限をお持ちの場合は、以下の手順を行ってください。存在しない場合は、こちらの手順に沿ってホーム ディレクトリに JDK をインストールできます。すでに JDK 1.5 以降がインストールされている場合は、Ant のインストールに進みます。

root 権限がある場合:

  1. http://java.sun.com/javase/downloads/index.jsp にアクセスします。
  2. 最新バージョンの横にある [ダウンロード] をクリックします。
  3. 本契約を読んで同意します。
  4. [Linux プラットフォーム] で RPM ファイルの自己解凍ファイルをクリックしてダウンロードします。
  5. ターミナル ウィンドウを開き、ファイルをダウンロードしたディレクトリに移動して、次の操作を行います。
    • su
    • chmod a+x jdk-6(version)-linux-i586-rpm.bin
    • ./jdk-6(version)-linux-i586-rpm.bin
    • 使用許諾契約に同意します。

root 権限がない場合:

  1. http://java.sun.com/javase/downloads/index.jsp にアクセスします。
  2. 最新バージョンの横にある [ダウンロード] をクリックします。
  3. 本契約を読んで同意します。
  4. [Linux プラットフォーム] の下にある自己解凍型ビルド(RPM ではない)をクリックしてダウンロードします。
  5. ターミナル ウィンドウを開き、ファイルをダウンロードしたディレクトリに移動して、次のコマンドを入力します。
    • chmod +x jdk-6(version)-linux-i586-rpm.bin
    • インストールするディレクトリに移動します。
    • 自己抽出バイナリを実行します。現在のディレクトリにインストールする場合は、「./jdk-6(version)-linux-i586-rpm.bin」と入力します。
    • 使用許諾契約に同意します。

インストール手順について詳しくは、こちらをご覧ください。

Ant をインストールする

GData Java クライアント ライブラリを使用するには、Ant 1.7 以降が必要です。すでに Ant がインストールされている場合は、コマンド プロンプトで「ant -version」と入力してバージョンを確認します。最新バージョンを入手する必要がある場合、またはインストールしていない場合は、以下の手順に沿って操作してください。Java と Ant のインストールがすでに設定されている場合は、mail.jar の取得に進んでください。

  1. http://ant.apache.org/bindownload.cgi にアクセスします。
  2. .tar.gz のダウンロード リンクをクリックします。
  3. ターミナル ウィンドウを開き、ダウンロードしたファイルがあるディレクトリに移動して、次のコマンドを入力して、ファイルを抽出します。
    • gunzip apache-ant-(version)-bin.tar.gz
    • tar xvf apache-ant-(version)-bin.tar
  4. ant bin ディレクトリを PATH 環境変数に追加します。
  5. ANT_HOME 環境変数を追加または編集して、新しい場所として設定します。
  6. JAVA_HOME 環境変数を追加または編集して、JDK がインストールされている場所に設定します。

問題が発生した場合は、Ant のインストールに関するドキュメントをご覧ください。

mail.jar を取得する

メディアサポートのために JavaMail API が含まれています。

  1. http://java.sun.com/products/javamail/downloads/index.html にアクセスします。
  2. [ダウンロード] ボタンをクリックします。バージョン 1.4 以降をダウンロードしていることを確認します。
  3. 本契約を読んで同意します。
  4. JavaMail を含む .zip ファイルのリンクをクリックします。
  5. unzip をクリックし、ファイルを書き出します。mail.jar はルート ディレクトリ javamail-(version) にあります。

activation.jar を取得する

メディア サポートには JavaBeans アクティベーション フレームワークが含まれています。

  1. JAF のダウンロード ページにアクセスします。
  2. [ダウンロード] ボタンをクリックします。
  3. 本契約を読んで同意します。
  4. アクティベーション フレームワークを含む .zip ファイルのリンクをクリックします。
  5. unzip をクリックし、ファイルを書き出します。activation.jar はルート ディレクトリ jaf-(version) にあります。

サーブレット.jar を取得する

servlet.jarservlet-api.jar と呼ばれることもあります)サーブレット コンテナ(J2EE、Tomcat、WebLogic など)にあります。AuthSub と Google Base のサンプルに使用されます。Tomcat 6.x を入手するには、以下の手順を実施します。

  1. http://tomcat.apache.org/download-60.cgi にアクセスします。
  2. Core Binary Distribution 以下に .tar.gz ファイルをダウンロードします。
  3. 上記の Ant のインストールのセクションに示すように、gunziptar を使用してダウンロードをパッケージ化します。
  4. servlet.jarapache-tomcat-(version)/lib 配下にあります。

GData Java クライアント ライブラリの取得に必要なものがすべて揃いました。

Google データ クライアント ライブラリのインストール

  1. http://code.google.com/p/then-java-client/downloads/list にアクセスします。
  2. クライアント ライブラリの最新バージョン(gdata-src.java-1.x.x.java.zip)とサンプル(gdata-samples.java-1.x.x.java.zip)をダウンロードします。
  3. クライアント ライブラリのソースをパソコンに展開します。
  4. gdata/java/build-src/build.properties に移動して、ファイルを開きます。
  5. 外部依存関係を編集して、ローカルマシン上の .jar ファイルの場所を指すようにします。
  6. 注: Windows では、バックスラッシュをエスケープしてください。次に例を示します。

    servlet.jar=C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\lib\\servlet-api.jar

実行中のサンプル

利用可能なサンプルはすべて、gdata-samples.java-1.x.x.java.zip アーカイブの gdata/java/sample にあります。gdata/java/build-samples/build.properties ファイルには、ライブラリに含まれるサンプルのすべての入力値が含まれています。sample.credentials.usernamesample.credentials.password に有効なユーザー名とパスワードを設定します。Ant を使ってサンプルを構築して実行できます。

すべてが正しくインストールされたかどうかをテストするには、コマンド プロンプトを開き、gdata/java ディレクトリに移動して、次のように入力します。

ant -f build-samples.xml sample.calendar.run

一部の情報や警告メッセージが表示されることがありますが、最後に BUILD SUCCESSFUL メッセージをご確認ください。成功メッセージが表示されない場合は、トラブルシューティングのセクションをご覧ください。

以下を入力して、よりインタラクティブなサンプルをお試しください。

ant -f build-samples.xml sample.spreadsheet.guidemo.run

特定のサンプルの実行方法については、gdata/java/build-samples に移動して、そのサンプルのビルドファイルをご確認ください。[samples run] セクションを探します。

トラブルシューティング

ビルドが失敗し、次のようなエラー メッセージが表示される。

BUILD FAILED
Target 'core.sample.core.util.build' does not exist in this project. It is used from target 'sample.calendar.build'.

Total time: 0 seconds

エッセンシャル ファイルがプロジェクトに含まれていないことを示すエラー メッセージが表示された場合、古いバージョンの Ant が実行されている可能性があります。「ant -version」と入力して、1.7 以降であることを確認します。上記の dependency の手順を参照して、最新バージョンの Ant を取得します。

独自のアプリケーションの構築

次の質問は、自分のアプリケーションをどのように構築するかです。カレンダー サービスを使用して基本的な機能を示す「Hello, World!」という同等のプログラムを確認していきます。詳しくは、Java クライアント ライブラリのデベロッパー ガイドと、各プロダクトのデベロッパー ガイドをご覧ください。

CalendarTest.java というファイルを作成します。まず、次の import ステートメントを追加します。

import com.google.gdata.client.*;
import com.google.gdata.client.calendar.*;
import com.google.gdata.data.*;
import com.google.gdata.data.acl.*;
import com.google.gdata.data.calendar.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.*;

import java.net.*;
import java.io.*;

import sample.util.*;

プログラム全体(例外処理なし)。

public class CalendarTest {

    public static void main(String[] args) {
        CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");
        myService.setUserCredentials("root@gmail.com", "pa$$word");

        URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full");
        CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

        System.out.println("Your calendars:");
        System.out.println();

        for (int i = 0; i < resultFeed.getEntries().size(); i++) {
          CalendarEntry entry = resultFeed.getEntries().get(i);
          System.out.println("\t" + entry.getTitle().getPlainText());
        }

    }
}

This little program will request all the calendars you own and display all the titles. It's a little longer than the canonical "Hello, World!" example, but it's very simple once we break it down. The first couple of lines creates a service object and sets the user credentials.

CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");
myService.setUserCredentials("root@gmail.com", "pa$$word");

次に、リソースの URL を設定します。この場合、認証済みユーザーのすべてのカレンダーのリストをリクエストできます。

URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full");

下の行では、URL に対して実際の GET コマンドを実行し、生成されたフィードを tidy オブジェクトに入れます。

CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

以下の for ループは、各エントリを反復してタイトルを出力します。タイトルは TextConstruct として保存されるため、書式なしテキストを取得するには追加の関数呼び出しが必要になります。

for (int i = 0; i < resultFeed.getEntries().size(); i++) {
    CalendarEntry entry = resultFeed.getEntries().get(i);
    System.out.println("\t" + entry.getTitle().getPlainText());
}

これはごく基本的なことでした。その他の一般的なことをいくつか見ていきましょう。次のスニペットは、オブジェクトを作成して挿入する方法を示しています。この例では、カレンダーの予定の新しいエントリになります。

URL postURL = new URL("http://www.google.com/calendar/feeds/root@gmail.com/private/full");
CalendarEventEntry myEvent = new CalendarEventEntry();

//Set the title and description
myEvent.setTitle(new PlainTextConstruct("Pi Day Party"));
myEvent.setContent(new PlainTextConstruct("I am throwing a Pi Day Party!"));

//Create DateTime events and create a When object to hold them, then add
//the When event to the event
DateTime startTime = DateTime.parseDateTime("2007-03-14T15:00:00-08:00");
DateTime endTime = DateTime.parseDateTime("2007-03-14T17:00:00-08:00");
When eventTimes = new When();
eventTimes.setStartTime(startTime);
eventTimes.setEndTime(endTime);
myEvent.addTime(eventTimes);

// POST the request and receive the response:
CalendarEventEntry insertedEntry = myService.insert(postURL, myEvent);

もう一つの一般的なオペレーションは、クエリの作成です。

//Create a new query object and set the parameters
Query myQuery = new Query(feedURL);
myQuery.setFullTextQuery("Pi");

//Send the request with the built query URL
CalendarEventFeed myResultsFeed = myService.query(myQuery, CalendarEventFeed.class);

//Take the first match and print the title
if (myResultsFeed.getEntries().size() > 0) {
    CalendarEventEntry firstMatchEntry = new CalendarEventEntry();
    myResultsFeed.getEntries().get(0);
    System.out.println(firstMatchEntry.getTitle().getPlainText());
}

デバッグ中のもう一つの便利なオペレーションは、未加工の XML をダンプすることです。ライブラリでこれを行うのに便利なユーティリティがあります。samples.util.* がインポートされていることを確認します。次に、フィードまたはエントリをダンプします。

CommonUtils.dump(resultFeed, System.out);

より詳細なデバッグツールについては、クライアント ライブラリ内からロギングを有効にする方法についてのデバッグ: Google Data API クライアントのデバッグ: プログラム内からトラフィックを調べるをご覧ください。

クライアント ライブラリを使用してアプリを構築する方法を確認できます。詳細については、結論のセクションで、各 Google Data API で利用可能なデベロッパー ガイドの一覧をご覧ください。

まとめ

GData Java クライアント ライブラリを使用してアプリケーションを構築し、実行できるようになりました。使用可能な一般的な IDE は確認していませんが、EclipseNetBeans などの一般的なツールをお試しください。次のリンクが役に立つ可能性があります。

API での Java クライアント ライブラリの使用についてご不明な点がございましたら、API 固有のフォーラムに投稿してお知らせください。

Windows または Linux で環境変数を設定する手順。Mac OS X の場合、何も設定する必要はありません。

Windows

システム変数は、パソコンのすべてのユーザーに適用されます。管理者権限がないためシステム変数を編集できない場合は、こちらの手順をご覧ください。

管理者権限がある場合:

  1. [マイ コンピュータ] を右クリックして [プロパティ] を選択します。
  2. [詳細設定] タブをクリックします。
  3. [環境変数] をクリックします。
  4. システム変数「追加」または「編集」: (ローカルマシン上の場所を置き換える)
    • ANT_HOME を追加または編集して、値を C:\ant に設定します。
    • JAVA_HOME を追加または編集して、値を C:\jdk に設定します。
    • Path を追加または編集し、;C:\ant\bin;C:\jdk\bin を末尾に追加します(セミコロンがディレクトリ パスを区切る)。
    • CLASSPATH を追加または編集し、操作するサービスに応じて必要な .jar ファイルを追加します。「.」が含まれていることを確認してください。これは現在のディレクトリを示します。.;C:\gdata\java\lib\gdata-core-1.0.jar;C:\gdata\java\lib\gdata-calendar-1.0.jar など
  5. 再起動して、変更が有効であることを確認してください。

注: 変数に引用符(' または ")を使用しないでください。また、末尾が \ または / でないことを確認してください。

管理者権限がない場合:

  1. [マイ コンピュータ] を右クリックして [プロパティ] を選択します。
  2. [詳細設定] タブをクリックします。
  3. [環境変数] をクリックします。
  4. ユーザー変数を「追加」または「編集」: (ローカルマシン上の場所に置き換える)
    • ANT_HOME を追加または編集して、値を C:\ant に設定します。
    • JAVA_HOME を追加または編集して、値を C:\jdk に設定します。
    • Path を追加または編集し、;C:\ant\bin;C:\jdk\bin を末尾に追加します(セミコロンがディレクトリ パスを区切る)。
    • CLASSPATH を追加または編集し、操作するサービスに応じて必要な .jar ファイルを追加します。「.」が含まれていることを確認してください。これは現在のディレクトリを示します。.;C:\gdata\java\lib\gdata-core-1.0.jar;C:\gdata\java\lib\gdata-calendar-1.0.jar など
  5. 再起動して、変更が有効であることを確認してください。

注: 変数に引用符(' または ")を使用しないでください。また、末尾が \ または / でないことを確認してください。

編集したばかりのユーザー変数は、ユーザー プロフィールにのみ適用されます。

Linux

  1. ホーム ディレクトリにある任意のエディタで .bash_profile ファイルを開きます。
  2. 以下のコマンドを .bash_profile に追加します。マシン上のファイルが実際に保存されている場所に置き換えてください。
    • export ANT_HOME=/usr/local/ant
    • export JAVA_HOME=/usr/local/jdk
    • export PATH=${PATH}:${ANT_HOME}/bin
    • 使用するサービスの .jar ファイルを追加する必要があります。例: export CLASSPATH=${CLASSPATH}:/home/username/gdata/java/lib/gdata-core-1.0.jar:/home/username/gdata/java/lib/gdata-calendar-1.0.jar:/home/username/gdata/java/sample/util/lib/sample-util.jar
  3. source .bash_profile: 変数を確立します

注: 変数に引用符(' または ")を使用しないでください。また、末尾が \ または / でないことを確認してください。