การเริ่มต้นใช้งานไลบรารีข้อมูล Google Java

Stephanie Liu, ทีม Google Data API
กันยายน 2007
  1. บทนำ
  2. ติดตั้ง Dependency
    1. ใน Windows
    2. ใน Mac OS X
    3. ใน Linux ให้ทำดังนี้
  3. การติดตั้งไลบรารีของไคลเอ็นต์ข้อมูล Google
  4. ตัวอย่างการวิ่ง
  5. สร้างแอปพลิเคชันของคุณเอง
  6. สรุป
  7. ภาคผนวก: การตั้งค่าตัวแปรสภาพแวดล้อม

บทนำ

การเริ่มต้นพัฒนาด้วย API ที่ไม่คุ้นเคยนั้นทําได้ยาก บทความนี้จึงแสดงวิธีดาวน์โหลดและติดตั้ง Google Data API ("GData") Java Client Library แบบทีละขั้นตอน เราจะแนะนําทรัพยากร Dependency ทั้งหมดและตั้งค่าตัวแปรสภาพแวดล้อมที่คุณต้องใช้ คุณจะรวมบริการ GData ต่างๆ เข้าด้วยกันได้อย่างรวดเร็ว

หากใช้วงรีอยู่

อ่านบทความการเขียนโค้ดในเฉดสี: การใช้ Eclipse กับ Google Data API

การติดตั้งทรัพยากร Dependency

ไลบรารีของไคลเอ็นต์ GData Java มีทรัพยากร Dependency ภายนอกต่อไปนี้ ส่วนต่อไปนี้อธิบายวิธีติดตั้งทรัพยากร Dependency เหล่านี้ในระบบปฏิบัติการที่คุณชื่นชอบ (หรือระบบปฏิบัติการที่คุณต้องใช้ในที่ทํางาน)

  • JDK (Java Development Kit) เวอร์ชัน 1.5 ขึ้นไป
  • Apache Ant เวอร์ชัน 1.7 ขึ้นไป
  • mail.jar ใน JavaMail API 1.4 ขึ้นไป
  • การเปิดใช้งาน.jar ใน JavaBeansactivationFramework การดําเนินการนี้จําเป็นสําหรับ API สื่อโดยเฉพาะ ซึ่งรวมถึง API ข้อมูลรายการเอกสาร, Picasa Web Album API และ YouTube Data API
  • servlet.jar ใน Sunvlet API เวอร์ชัน 2.3 ขึ้นไป จําเป็นเฉพาะในกรณีที่เรียกใช้ตัวอย่างโค้ดในแพ็กเกจ "sample.authsub" หรือ "sample.gbase.สูตรอาหาร{/1}

ทรัพยากร Dependency บางรายการของ .jar จําเป็นต้องใช้สําหรับตัวอย่างที่เจาะจงเท่านั้น แต่เพื่อหลีกเลี่ยงข้อผิดพลาดเกี่ยวกับบิลด์ คุณควรจะได้รับทุกอย่าง เลือกระบบปฏิบัติการที่ต้องการดําเนินการต่อ ได้แก่ Windows, Mac OS X หรือ Linux

การติดตั้งไลบรารีของไคลเอ็นต์ข้อมูล Google

  1. ไปที่ http://code.google.com/p/gdata-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. แก้ไขทรัพยากร Dependency ภายนอกให้ชี้ไปยังตําแหน่งของไฟล์ .jar ในเครื่องของคุณ
  6. หมายเหตุ: ใน 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 ด้วยชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง เราใช้มดเพื่อสร้างและดําเนินการตัวอย่างได้

ทดสอบว่าคุณได้ติดตั้งทุกอย่างอย่างถูกต้องโดยเปิด Command Prompt เปลี่ยนเป็นไดเรกทอรี 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 เวอร์ชันล่าสุด

สร้างแอปพลิเคชันของคุณเอง

คําถามต่อไปคือวิธีสร้างแอปพลิเคชันของคุณเอง ฉันจะพูดถึงโปรแกรมที่เทียบเท่า "สวัสดีชาวโลก" โดยใช้บริการปฏิทินเพื่อแสดงฟังก์ชันพื้นฐาน ดูข้อมูลเพิ่มเติมโดยละเอียดได้ในคู่มือนักพัฒนาซอฟต์แวร์ของไลบรารีของไคลเอ็นต์ 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 ของทรัพยากร ในกรณีนี้ นี่คือที่ที่คุณสามารถขอรายการปฏิทินทั้งหมดจากผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์

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

บรรทัดด้านล่างจะเรียกใช้คําสั่ง GET จริงใน URL และนําฟีดผลลัพธ์ไปใช้กับออบเจ็กต์จัดระเบียบ

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 ลิงก์เพิ่มเติมบางส่วนที่อาจเป็นประโยชน์มีดังนี้

หากมีข้อสงสัยเกี่ยวกับการใช้ไลบรารีของไคลเอ็นต์ Java กับ API ใดก็ตาม โปรดแจ้งให้เราทราบโดยการโพสต์ในฟอรัม API ที่ต้องการ