Stephanie Liu、Google Data APIs チーム
2007 年 9 月
- はじめに
- 依存関係のインストール
- Windows の場合
- Mac OS X の場合
- Linux の場合
- Google Data クライアント ライブラリのインストール
- サンプルの実行
- 独自のアプリケーションを構築する
- まとめ
- 付録: 環境変数の設定
はじめに
使い慣れない API での開発を始めるのは簡単ではありません。この記事では、Google Data APIs(「GData」)Java クライアント ライブラリをダウンロードしてインストールする手順を説明します。必要な依存関係をすべて取得し、必要な環境変数を設定する手順について説明します。すぐにさまざまな GData サービスをマッシュアップできるようになります。
Eclipse を使用している場合
Coding in the Shade: Using Eclipse with Google Data APIs の記事をご覧ください。
依存関係のインストール
GData Java クライアント ライブラリには、次の外部依存関係があります。以降のセクションでは、お気に入りのオペレーティング システム(または職場で使用している OS)にこれらの依存関係をインストールする方法について説明します。
- JDK(Java Development Kit)バージョン 1.5 以降
- Apache Ant バージョン 1.7 以降
- Sun の JavaMail API 1.4 以降の mail.jar
- Sun の JavaBeansActivationFramework の activation.jar。これは、ドキュメント リスト データ API、Picasa ウェブ アルバム API、YouTube データ API などのメディア固有の API にのみ必要です。
- Sun の Servlet API バージョン 2.3 以降の servlet.jar。これは、'sample.authsub' パッケージまたは 'sample.gbase.recipe' パッケージでコードサンプルを実行する場合にのみ必要です。
.jar
依存関係の一部は特定のサンプルでのみ必要ですが、ビルドエラーを回避するため、すべてを取得することをおすすめします。続行するには、Windows、Mac OS X、Linux のいずれかのオペレーティング システムを選択します。
Windows の場合:
Windows オペレーティング システムの手順。
Java のインストール
Java 開発パッケージは、Sun から JDK(Java Development Kit)の形式で提供されています。JRE(Java Runtime Environment)と、Java アプリケーションの作成、コンパイル、テスト、デバッグに必要なものがすべて含まれています。Java がすでにインストールされている場合は、Ant のインストールに進んでください。
注: JDK をインストールするには、管理者権限が必要です。
- http://java.sun.com/javase/downloads/index.jsp にアクセスします。
- 最新のアップデートの横にある [ダウンロード] をクリックします。
- ライセンス契約を読んで同意します。
- Windows インストール ファイルのいずれかをダウンロードします。
- インストーラを実行します。
Path
環境変数を編集して、javac
などの JDK 実行可能ファイルを簡単に実行できるようにします。追加するパスは C:\jdk\bin\
のようになります。Windows で Path
変数を編集する手順については、付録をご覧ください。
JDK のインストールで問題が発生した場合は、Sun のウェブサイトで詳細なインストール手順をご確認ください。
Ant をインストールする
Apache Ant は、make
に似た(ただし、より優れた)Java 用のビルドツールです。このツールを使用して、ライブラリをビルドし、サンプルを実行します。Ant がすでにインストールされている場合は、バージョン 1.7 以降であることを確認します。
- [スタート] メニューをクリックし、[ファイル名を指定して実行] をクリックします。
- テキスト フィールドに「
cmd
」と入力します。
- プロンプトに
ant -version
と入力して、使用中のバージョンを確認します。
1.7 以降の場合は、mail.jar
の取得に進みます。Ant のバージョンが 1.7 より低い場合、または Ant がインストールされていない場合は、次の手順を行います。
- http://ant.apache.org/bindownload.cgi にアクセスします。
.zip
ダウンロードのダウンロード リンクをクリックします。
- すべてのファイルを任意の場所(
C:\ant
など)に抽出します。
- ant の
bin
ディレクトリ(C:\ant\bin
など)を Path
環境変数に追加します。
ANT_HOME
環境変数を追加または編集して、新しい場所(例: C:\ant
)として設定します。
- Java がインストールされている場所(
C:\jdk
など)に JAVA_HOME
環境変数を追加または編集します。
問題が発生した場合は、Ant のウェブサイトで詳細なインストール手順をご確認ください。
mail.jar の取得
メディア サポート用に JavaMail API が含まれています。
- http://java.sun.com/products/javamail/downloads/index.html にアクセスします。
- [ダウンロード] ボタンをクリックします。バージョン 1.4 以降をダウンロードしていることを確認します。
- ライセンス契約を読んで同意します。
- JavaMail を含む
.zip
ファイルのリンクをクリックします。
- ファイルをパソコンに抽出して、場所をメモします。
mail.jar
はルート ディレクトリ javamail-(version)
の下にあります。
activation.jar の取得
メディア サポートのために JavaBeans Activation Framework が含まれています。
- JAF のダウンロード ページにアクセスします。
- [ダウンロード] ボタンをクリックします。
- ライセンス契約を読んで同意します。
- Activation Framework を含む
.zip
ファイルのリンクをクリックします。
- ファイルをパソコンに抽出して、場所をメモします。
activation.jar
はルート ディレクトリ jaf-(version)
の下にあります。
servlet.jar の取得
servlet.jar
(servlet-api.jar
と呼ばれることもあります)は、サーブレット コンテナ(J2EE、Tomcat、WebLogic など)にあります。AuthSub と Google Base のサンプルで使用されます。以下の手順では、Tomcat 6.x を取得します。
- http://tomcat.apache.org/download-60.cgi にアクセスします。
- [Core Binary Distributions] の [Windows Service Installer] のダウンロードをクリックします。
- インストーラを実行します。
- デフォルトのままの場合、
servlet-api.jar
は C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib
にあります。
Tomcat の設定とインストールの詳細なドキュメントは、こちらをご覧ください。
これで、GData Java クライアント ライブラリをインストールする準備が整いました。
Mac OS X の場合
Mac OS X オペレーティング システムの手順。
Java のインストール
Mac OS X を実行している場合は、作業量が少なくなります。Apple は、すべてのインスタンスに完全に構成され、すぐに使用できる JDK(Java Development Kit)を組み込んでいます。詳しくは、Apple の Java サイトをご覧ください。
Ant をインストールする
Apache Ant は、make
に似た(ただし、より優れた)Java 用のビルドツールです。このツールを使用して、ライブラリをビルドし、サンプルを実行します。Ant もすでにインストールされている可能性がありますが、バージョン 1.7 以降がインストールされていることを確認してください。
- ターミナル ウィンドウを開きます。(Command+Space キーを押し、「ターミナル」と入力してアプリケーションを検索します)
- コマンド プロンプトで次のように入力します。
ant -version
実行している ant のバージョンが 1.7 より前の場合は、次の手順に沿って最新バージョンを入手してください。
- http://ant.apache.org/bindownload.cgi にアクセスします。
.zip
ダウンロードのダウンロード リンクをクリックします。
- ターミナル ウィンドウを開きます。(Command+Space キーを押し、「ターミナル」と入力してアプリケーションを検索します)
- コマンド プロンプトで、次のコマンドを入力します。
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 が含まれています。
- http://java.sun.com/products/javamail/downloads/index.html にアクセスします。
- [ダウンロード] ボタンをクリックします。バージョン 1.4 以降をダウンロードしていることを確認します。
- ライセンス契約を読んで同意します。
- JavaMail を含む
.zip
ファイルのリンクをクリックします。
- ファイルをパソコンに抽出して、場所をメモします。
mail.jar
はルート ディレクトリ javamail-(version)
の下にあります。
activation.jar の取得
メディア サポートのために JavaBeans Activation Framework が含まれています。
- JAF のダウンロード ページにアクセスします。
- [ダウンロード] ボタンをクリックします。
- ライセンス契約を読んで同意します。
- Activation Framework を含む
.zip
ファイルのリンクをクリックします。
- ファイルをパソコンに抽出して、場所をメモします。
activation.jar
はルート ディレクトリ jaf-(version)
の下にあります。
servlet.jar の取得
servlet.jar
(servlet-api.jar
と呼ばれることもあります)は、サーブレット コンテナ(J2EE、Tomcat、WebLogic など)にあります。AuthSub と Google Base のサンプルで使用されます。以下の手順では、Tomcat 6.x を取得します。
- http://tomcat.apache.org/download-60.cgi にアクセスします。
- [Core Binary Distributions] の [
.zip
] ダウンロードをクリックします。
- ファイルをパソコンに抽出して、場所をメモします。
servlet.jar
は apache-tomcat-(version)/lib
にあります
Tomcat の設定とインストールの詳細なドキュメントは、こちらをご覧ください。
これで、GData Java クライアント ライブラリをインストールする準備が整いました。
Linux の場合:
Linux オペレーティング システムの手順。
Java のインストール
このチュートリアルでは、Sun の JDK(Java Development Kit)を使用します。root アクセス権がある場合は、以下の手順に沿って対応してください。そうでない場合は、こちらの手順に沿って、ホーム ディレクトリに JDK をインストールしてください。JDK 1.5 以降がすでにインストールされている場合は、Ant のインストールに進みます。
root 権限がある場合:
- http://java.sun.com/javase/downloads/index.jsp にアクセスします。
- 最新バージョンの横にある [ダウンロード] をクリックします。
- ライセンス契約を読んで同意します。
- [Linux Platform] で RPM ファイルの自己解凍ファイルをクリックしてダウンロードします。
- ターミナル ウィンドウを開き、ファイルをダウンロードしたディレクトリに移動して、次の操作を行います。
su
chmod a+x jdk-6(version)-linux-i586-rpm.bin
./jdk-6(version)-linux-i586-rpm.bin
- 使用許諾契約に同意します。
root 権限がない場合:
- http://java.sun.com/javase/downloads/index.jsp にアクセスします。
- 最新バージョンの横にある [ダウンロード] をクリックします。
- ライセンス契約を読んで同意します。
- [Linux Platform] で自己解凍ビルド(RPM ではない)をクリックしてダウンロードします。
- ターミナル ウィンドウを開き、ファイルをダウンロードしたディレクトリに移動して、次のコマンドを入力します。
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
の取得に進んでください。
- http://ant.apache.org/bindownload.cgi にアクセスします。
.tar.gz
ダウンロードのダウンロード リンクをクリックします。
- ターミナル ウィンドウを開き、ダウンロードしたファイルがあるディレクトリに移動して、次のコマンドを入力してファイルを抽出します。
gunzip apache-ant-(version)-bin.tar.gz
tar xvf apache-ant-(version)-bin.tar
- ant
bin
ディレクトリを PATH
環境変数に追加します。
ANT_HOME
環境変数を追加または編集して、新しいロケーションとして設定します。
JAVA_HOME
環境変数を追加または編集して、JDK がインストールされている場所として設定します。
問題が発生した場合は、こちらで Ant のインストールに関する詳細なドキュメントをご覧ください。
mail.jar の取得
メディア サポート用に JavaMail API が含まれています。
- http://java.sun.com/products/javamail/downloads/index.html にアクセスします。
- [ダウンロード] ボタンをクリックします。バージョン 1.4 以降をダウンロードしていることを確認します。
- ライセンス契約を読んで同意します。
- JavaMail を含む
.zip
ファイルのリンクをクリックします。
unzip
ファイルをパソコンに保存し、保存場所をメモします。mail.jar
はルート ディレクトリ javamail-(version)
の下にあります。
activation.jar の取得
メディア サポートのために JavaBeans Activation Framework が含まれています。
- JAF のダウンロード ページにアクセスします。
- [ダウンロード] ボタンをクリックします。
- ライセンス契約を読んで同意します。
- Activation Framework を含む
.zip
ファイルのリンクをクリックします。
unzip
ファイルをパソコンに保存し、保存場所をメモします。activation.jar
はルート ディレクトリ jaf-(version)
の下にあります。
servlet.jar の取得
servlet.jar
(servlet-api.jar
と呼ばれることもあります)は、サーブレット コンテナ(J2EE、Tomcat、WebLogic など)にあります。AuthSub と Google Base のサンプルで使用されます。以下の手順では、Tomcat 6.x を取得します。
- http://tomcat.apache.org/download-60.cgi にアクセスします。
- [Core Binary Distributions] で
.tar.gz
ファイルをダウンロードします。
- 上記の Ant のインストール セクションで説明したように、
gunzip
と tar
を使用してダウンロードを解凍します。
servlet.jar
は apache-tomcat-(version)/lib
にあります
これで、GData Java クライアント ライブラリを取得するために必要なものがすべて揃いました。
Google Data クライアント ライブラリのインストール
- http://code.google.com/p/gdata-java-client/downloads/list にアクセスします。
- クライアント ライブラリ(
gdata-src.java-1.x.x.java.zip
)とサンプル(gdata-samples.java-1.x.x.java.zip
)の最新バージョンをダウンロードします。
- クライアント ライブラリのソースをパソコンに抽出します。
gdata/java/build-src/build.properties
に移動してファイルを開きます。
- 外部依存関係を編集して、ローカルマシン上の
.jar
ファイルの場所を指定します。
注: 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.username
と sample.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 以降が実行されていることを確認します。上記の依存関係の手順に沿って、最新バージョンの 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);
もう 1 つの一般的なオペレーションは、クエリの作成です。
//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());
}
デバッグ中に役立つもう 1 つの操作は、未加工の XML をダンプすることです。ライブラリでこれを行うための便利なユーティリティがあります。samples.util.*
がインポートされていることを確認します。次に、フィードまたはエントリをダンプします。
CommonUtils.dump(resultFeed, System.out);
さらに詳細なデバッグツールについては、クライアント ライブラリ内からロギングを有効にする方法に関する Debugging Google Data API Clients: Exploring Traffic from Within your Program の記事をご覧ください。
これにより、クライアント ライブラリを使用してアプリを構築する感覚を掴むことができます。詳細については、各 Google Data API の利用可能なデベロッパー ガイドのリストについて、結論のセクションをご覧ください。
まとめ
これで、GData Java クライアント ライブラリを使用してアプリケーションをビルドして実行できるようになりました。使用できる一般的な IDE については説明しませんでしたが、Eclipse や NetBeans などの一般的なツールを調べてみることをおすすめします。その他の関連リンク:
Java クライアント ライブラリと API の使用についてご不明な点がある場合は、API 固有のフォーラムに投稿してお知らせください。
付録: 環境変数の設定
Windows または Linux で環境変数を設定する手順。Mac OS X の場合は、何も設定する必要はありません。
Windows
システム変数は、コンピュータのすべてのユーザーに適用されます。管理者権限がないためシステム変数を編集できない場合は、こちらの手順に沿って操作してください。
管理者権限がある場合:
- [マイ コンピュータ] を右クリックして、[プロパティ] を選択します。
- [詳細設定] タブをクリックします。
- [環境変数] をクリックします。
- システム変数を「追加」または「編集」します(ローカルマシンの場所を置き換えます)。
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
など
- 再起動して、変更が有効になっていることを確認します。
注: 変数に引用符(' または ")が含まれておらず、\ または / で終わっていないことを確認してください。
管理者権限がない場合:
- [マイ コンピュータ] を右クリックして、[プロパティ] を選択します。
- [詳細設定] タブをクリックします。
- [環境変数] をクリックします。
- ユーザー変数を「追加」または「編集」します(ローカルマシンの場所を置き換えます)。
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
など
- 再起動して、変更が有効になっていることを確認します。
注: 変数に引用符(' または ")が含まれておらず、\ または / で終わっていないことを確認してください。
編集したユーザー変数は、ユーザー プロフィールにのみ適用されます。
Linux
- ホーム ディレクトリにある
.bash_profile
ファイルを任意のエディタで開きます。
- 次のコードを
.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
source .bash_profile
を使用して変数を確立します。
注: 変数に引用符(' または ")が含まれておらず、\ または / で終わっていないことを確認してください。