การเริ่มต้นใช้งานไลบรารีของไคลเอ็นต์ Java สำหรับข้อมูลของ Google

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

บทนำ

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

หากใช้ Eclipse

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

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

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

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

.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. แก้ไขการอ้างอิงภายนอกให้ชี้ไปยังตำแหน่งของไฟล์ .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 เป็นชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง เราใช้ 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 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 นั้นๆ