Google Data API 團隊 Stephanie Liu
2007 年 9 月
- 簡介
- 安裝依附元件
- Windows
- Mac OS X
- Linux
- 安裝 Google Data Client Library
- 執行範例
- 建構自己的應用程式
- 結語
- 附錄:設定環境變數
簡介
開始使用不熟悉的 API 開發作業並不容易,因此本文提供逐步操作說明,教您如何下載及安裝 Google Data API (簡稱「GData」) Java 用戶端程式庫。我會逐步說明如何取得所有依附元件,以及設定所需的環境變數。您很快就能混搭不同的 GData 服務!
使用 Eclipse 嗎?
請參閱「Coding in the Shade: Using Eclipse with Google Data APIs」一文。
安裝依附元件
GData Java 用戶端程式庫有下列外部依附元件。以下各節將說明如何在您慣用的作業系統 (或您在工作時使用的作業系統) 上安裝這些依附元件。
- JDK (Java Development Kit) 1.5 以上版本
- Apache Ant 1.7 以上版本
- Sun 的 JavaMail API 1.4 以上版本中的 mail.jar
- Sun 的 JavaBeansActivationFramework 中的 activation.jar。只有媒體專屬 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 語言
Java 開發套件由 Sun 提供,形式為 JDK (Java Development Kit)。其中包含 JRE (Java Runtime Environment),以及編寫、編譯、測試及偵錯 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.cgi
- 按一下下載連結即可
.zip
下載。
- 將所有檔案解壓縮到所選位置,例如
C:\ant
- 將 ant
bin
目錄 (例如 C:\ant\bin
) 新增至 Path
環境變數。
- 新增或編輯
ANT_HOME
環境變數,將其設為新位置,例如 C:\ant
- 新增或編輯
JAVA_HOME
環境變數,指向 Java 的安裝位置,例如 C:\jdk
。
如有任何問題,請參閱 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 下載頁面。
- 按一下 [下載報表] 按鈕。
- 詳閱並接受授權協議。
- 按一下包含啟用架構的
.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.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 是 Java 適用的建構工具,類似於 make
(但更優異)。您將使用這個工具建構程式庫並執行範例。您可能也已安裝 Ant,但請檢查是否為 1.7 以上版本。
- 開啟終端機視窗。(按下 Command + 空白鍵,然後輸入「終端機」即可找到應用程式)
- 在命令提示字元中輸入:
ant -version
如果執行的 ant 版本低於 1.7,請按照下列步驟取得最新版本。
- 前往 http://ant.apache.org/bindownload.cgi
- 按一下下載連結即可
.zip
下載。
- 開啟終端機視窗。(按下 Command + 空白鍵,然後輸入「終端機」即可找到應用程式)
- 在命令提示字元中輸入下列內容:
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 下載頁面。
- 按一下 [下載報表] 按鈕。
- 詳閱並接受授權協議。
- 按一下包含啟用架構的
.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.cgi
- 按一下「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 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 下載頁面。
- 按一下 [下載報表] 按鈕。
- 詳閱並接受授權協議。
- 按一下包含啟用架構的
.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.cgi
- 在「Core Binary Distributions」下方下載
.tar.gz
檔案。
- 使用
gunzip
和 tar
解壓縮下載內容,如上方的「安裝 Ant」一節所示。
- 「
servlet.jar
」會顯示在「apache-tomcat-(version)/lib
」下方
現在您應該已備齊所有必要項目,可以取得 GData Java 用戶端程式庫!
安裝 Google Data Client Library
- 前往 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/java/sample
封存檔的 gdata-samples.java-1.x.x.java.zip
下方。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。
建構自己的應用程式
下一個問題是,如何建構自己的應用程式。我將使用 Calendar 服務,逐步說明「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");
以下這行會在網址上執行實際的 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);
如需更深入的偵錯工具,請參閱「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
檔案。請務必加入「.」&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
建立變數
注意:請確認變數沒有引號 (單引號或雙引號),且結尾不是 \ 或 /。