Stephanie Liu,Google Data API 團隊
2007 年 9 月
- 說明
- 安裝依附元件
- Windows
- Mac OS X
- Linux
- 安裝 Google Data 用戶端程式庫
- 執行範例
- 建構您自己的應用程式
- 結語
- 附錄:設定環境變數
簡介
以不熟悉的 API 開始開發工作並不容易,因此本文將逐步說明如何下載並安裝 Google Data API (「GData」) Java 用戶端程式庫。我會逐一說明所有依附元件,並設定您需要的環境變數。您將立即擁有不同的 GData 服務!
您使用 Eclipse 嗎?
請參閱程式設計方面的程式設計:將 Eclipse 與 Google Data API 搭配使用一文。
安裝依附元件
GData Java 用戶端程式庫包含下列外部依附元件。以下各節將說明如何在您偏好的作業系統 (或工作停滯的作業系統) 上安裝這些依附元件。
- JDK (Java Development Kit) 1.5 以上版本
- Apache Ant 1.7 以上版本
- Sun 的 JavaMail API 1.4 以上版本中的 mail.jar
- 使用 Sun.Java 的啟用啟用架構。對媒體專用 API (包括 Document List Data API、Picasa Web Album API 和 YouTube Data API) 而言,這是必要步驟。
- Sun 的 Servlet API 2.3 以上版本中的 Servlet.jar。只有在「sample.authsub」或「sample.gbase.recipe」套件中執行程式碼範例時,才需要使用這個值。
某些範例只需要使用 .jar
依附元件,但為了避免建構錯誤,最好只取得所有內容。請選擇您偏好的作業系統:Windows、Mac OS X 或 Linux。
Windows 使用者
Windows 作業系統的操作說明。
安裝 Java 語言
從 Sun 提供 Java 開發套件,格式為 JDK (Java Development Kit)。JRE (Java 執行階段環境) 及其他所有用於撰寫、編譯、測試及偵錯 Java 應用程式所需的內容,皆包含在其中。如果您已安裝 Java,請直接跳到安裝 Ant。
注意:您必須具備管理員權限才能安裝 JDK。
- 前往 http://java.sun.com/javase/downloads/index.jsp
- 按一下最新更新項目旁的 [下載]。
- 閱讀並接受《授權協議》。
- 下載其中一個 Windows 安裝檔案。
- 執行安裝程式。
- 編輯
Path
環境變數,即可輕鬆執行 JDK 執行檔,例如 javac
。您要新增的路徑看起來會像這樣:C:\jdk\bin\
。如要瞭解如何在 Windows 中編輯 Path
變數,請參閱附錄。
如果您在安裝 JDK 時發生任何問題,請參閱 Sun 網站上的詳細安裝指示。
正在安裝 Ant
Apache Ant 是 Java 的建構工具,與 make
類似,但是更好。您將使用它來建構程式庫並執行範例。如果您已安裝 Ant,請檢查其是否為 1.7 以上版本。
- 依序點選 [開始] 選單和 [執行]。
- 在文字欄位中輸入
cmd
。
- 在提示中輸入
ant -version
,查看目前使用的版本。
如果您已安裝 1.7 以上版本,請直接跳到取得 mail.jar
。如果您的 Ant 版本低於 1.7,或是尚未安裝,請執行下列步驟。
- 前往 http://ant.apache.org/bindownload.ALT
- 按一下「
.zip
」下載連結。
- 將所有檔案解壓縮到您選擇的位置,例如
C:\ant
- 將 ant 的
bin
目錄 (例如 C:\ant\bin
) 新增至 Path
環境變數。
- 新增或編輯
ANT_HOME
環境變數,將其設為新的位置,例如 C:\ant
- 新增或編輯安裝 Java 的
JAVA_HOME
環境變數 (例如 C:\jdk
)。
如有任何問題,請前往 Ant 網站參閱詳細安裝操作說明。
正在取得 mail.jar
JavaMail API 包含媒體支援。
- 前往 http://java.sun.com/products/javamail/downloads/index.html。
- 點擊 [下載] 按鈕。請確認您下載的是 1.4 以上版本。
- 閱讀並接受《授權協議》。
- 按一下包含 JavaMail 的
.zip
檔案連結。
- 將檔案解壓縮到您的電腦中並記下位置。
mail.jar
將隸屬於 javamail-(version)
的根目錄
取得啟用.jar
媒體支援已納入 JavaBeans 啟用架構。
- 前往 JAF 下載網頁。
- 按一下 [下載報表] 按鈕。
- 閱讀並接受《授權協議》。
- 按一下包含啟用架構的
.zip
檔案連結。
- 將檔案解壓縮到您的電腦中並記下位置。
activation.jar
將隸屬於 jaf-(version)
的根目錄
取得 Servlet.jar
servlet.jar
(可稱為 servlet-api.jar
) 可在您的 Servlet 容器 (J2EE、Tomcat、WebLogic 等) 中找到。用於 AuthSub 和 Google Base 範例。請按照下列操作說明取得 Tomcat 6.x。
- 前往 http://tomcat.apache.org/download-60.ALT
- 按一下「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 開發套件)。詳情請參閱 Apple 的 Java 網站。
正在安裝 Ant
Apache Ant 是 Java 的建構工具,與 make
類似,但是更好。您將使用它來建構程式庫並執行範例。您可能還安裝了 Ant,但是請檢查是否已安裝 1.7 以上版本。
- 開啟終端機視窗。(Command + 空格鍵,然後輸入「Terminal」即可找出應用程式)
- 在命令提示字元視窗輸入:
ant -version
如果您執行的 ant 版本低於 1.7,請按照下列步驟取得最新版本。
- 前往 http://ant.apache.org/bindownload.ALT
- 按一下「
.zip
」下載連結。
- 開啟終端機視窗。(Command + 空格鍵,然後輸入「Terminal」即可找出應用程式)
- 在命令提示字元視窗輸入下列指令:
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)
的根目錄
取得啟用.jar
媒體支援已納入 JavaBeans 啟用架構。
- 前往 JAF 下載網頁。
- 按一下 [下載報表] 按鈕。
- 閱讀並接受《授權協議》。
- 按一下包含啟用架構的
.zip
檔案連結。
- 將檔案解壓縮到您的電腦中並記下位置。
activation.jar
將隸屬於 jaf-(version)
的根目錄
取得 Servlet.jar
servlet.jar
(可稱為 servlet-api.jar
) 可在您的 Servlet 容器 (J2EE、Tomcat、WebLogic 等) 中找到。用於 AuthSub 和 Google Base 範例。請按照下列操作說明取得 Tomcat 6.x。
- 前往 http://tomcat.apache.org/download-60.ALT
- 按一下「Core Binary Distributions」下方的
.zip
下載。
- 將檔案解壓縮到您的電腦中並記下位置。
servlet.jar
將顯示在 apache-tomcat-(version)/lib
之下
如需 Tomcat 的設定與安裝說明文件,請參閱這篇文章。
太好了,您現在可以安裝 GData Java 用戶端程式庫了。
Linux:
Linux 作業系統的操作說明。
安裝 Java 語言
本教學課程將使用 Sun 的 JDK (Java 開發套件)。如果您擁有根存取權,請按照下列操作說明進行。您可以直接按照這些操作說明在主目錄中安裝 JDK。如果您已安裝 JDK 1.5 以上版本,請直接跳到「安裝 Ant」。
如果您具備 Root 權限:
- 前往 http://java.sun.com/javase/downloads/index.jsp
- 按一下最新版本旁邊的 [下載]。
- 閱讀並接受《授權協議》。
- 在「Linux 平台」下點選並下載 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 平台」下方點選並下載自行解壓縮版本 (而非 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.ALT
- 按一下「
.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)
的根目錄
取得啟用.jar
媒體支援已納入 JavaBeans 啟用架構。
- 前往 JAF 下載網頁。
- 按一下 [下載報表] 按鈕。
- 閱讀並接受《授權協議》。
- 按一下包含啟用架構的
.zip
檔案連結。
- 將檔案
unzip
儲存到您的電腦中並記下位置。activation.jar
將隸屬於 jaf-(version)
的根目錄
取得 Servlet.jar
servlet.jar
(可稱為 servlet-api.jar
) 可在您的 Servlet 容器 (J2EE、Tomcat、WebLogic 等) 中找到。用於 AuthSub 和 Google Base 範例。請按照下列操作說明取得 Tomcat 6.x。
- 前往 http://tomcat.apache.org/download-60.ALT
- 在核心二進位檔發布頁面下載
.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,請參閱上方的依附元件操作說明。
打造您自己的應用程式
下一個問題是如何建構自己的應用程式。我將透過「Google 日曆」服務完成「Hello, World!」對等程式,呈現基本功能。如需更詳細的資訊,請參閱 Java 用戶端程式庫的開發人員指南,以及個別產品的開發人員指南。
建立名為 CalendarTest.java 的檔案。首先,加入下列匯入陳述式。
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 feedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full");
以下這行程式碼會在 URL 上執行實際的 GET
指令,並將最終的資訊提供放入一個潮濕的物件中。
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,但建議您參考 Eclipse 或 NetBeans 等熱門的工具。以下是一些可能有用的連結:
如果您在使用任何 API 時搭配 Java 用戶端程式庫使用 API 有任何疑問,可以在 API 專屬的論壇中發文提問。
附錄:設定環境變數
在 Windows 或 Linux 上設定環境變數的操作說明。您不須為 Mac OS X 進行任何設定。
Windows
系統變數將套用至電腦上的所有使用者。如果您因為沒有管理員權限而無法編輯系統變數,請按照這裡的說明操作。
如果您擁有管理員權限:
- 在 [我的電腦] 上按一下滑鼠右鍵,然後選取 [內容]。
- 按一下 [進階] 分頁標籤。
- 按一下 [環境變數]。
- 「Add」或「Edit」系統變數:(取代本機電腦上的位置)
- 新增或編輯
ANT_HOME
,並將值設為 C:\ant
- 新增或編輯
JAVA_HOME
,並將值設為 C:\jdk
- 新增或編輯
Path
,並在結尾處加上 ;C:\ant\bin;C:\jdk\bin
(分號分隔目錄路徑)
- 請新增或編輯
CLASSPATH
,然後附上您需要的 .jar
檔案 (視您要使用的服務而定)。確認 "." 已包含 &mhash,表示目前的目錄。.;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
檔案 (視您要使用的服務而定)。確認 "." 已包含 &mhash,表示目前的目錄。.;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
可建立變數
注意:請確認變數不含引號 (「 或 」),且結尾不得為 \ 或 /。