Bắt đầu sử dụng Thư viện ứng dụng Java của Google Data

Stephanie Liu, Nhóm Google Data API
Tháng 9 năm 2007
  1. Giới thiệu
  2. Cài đặt phần phụ thuộc
    1. Trên Windows
    2. Trên Mac OS X
    3. Trên Linux
  3. Cài đặt Thư viện dữ liệu khách hàng của Google
  4. Chạy mẫu
  5. Xây dựng ứng dụng của riêng bạn
  6. Lời kết
  7. Phụ lục: Thiết lập biến môi trường

Giới thiệu

Không bao giờ dễ dàng bắt đầu phát triển bằng một API không quen thuộc, vì vậy bài viết này có hướng dẫn từng bước về cách tải xuống và cài đặt Thư viện ứng dụng Java API của Google Data API (GData). Tôi sẽ xem qua tất cả các phần phụ thuộc và đặt các biến môi trường mà bạn sẽ cần. Bạn sẽ nhanh chóng kết hợp các dịch vụ GData khác nhau!

Bạn đang sử dụng Eclipse?

Hãy xem bài viết Mã hóa trong bóng râm: Sử dụng Eclipse với các API dữ liệu của Google.

Cài đặt phần phụ thuộc

Thư viện ứng dụng GData Java có các phần phụ thuộc bên ngoài sau. Các phần sau đây sẽ mô tả cách cài đặt các phần phụ thuộc này trên hệ điều hành mà bạn yêu thích (hoặc hệ điều hành mà bạn gặp khó khăn trong công việc).

  • JDK (Java Development Kit) phiên bản 1.5 trở lên
  • Apache Ant phiên bản 1.7 trở lên
  • mail.jar trong API Java của Sun 1.4+
  • Activate.jar trong JavaBeansTriggerFramework. Yêu cầu này chỉ dành cho các API dành riêng cho đa phương tiện, bao gồm API Dữ liệu danh sách tài liệu, API Album Web Picasa và API dữ liệu YouTube.
  • rất nhiều người dùng chỉ sử dụng các mẫu mã này trong các gói 'sample.authsub' hoặc 'sample.gbase.recipe'.

Một số phần phụ thuộc .jar chỉ bắt buộc đối với các mẫu cụ thể, nhưng để tránh lỗi bản dựng, tốt nhất bạn nên tải mọi phần phụ thuộc. Chọn hệ điều hành mà bạn chọn để tiếp tục: Windows, Mac OS X hoặc Linux.

Cài đặt Thư viện dữ liệu khách hàng của Google

  1. Truy cập vào http://code.google.com/p/gdata-java-client/downloads/list
  2. Tải phiên bản mới nhất của thư viện ứng dụng (gdata-src.java-1.x.x.java.zip) và các mẫu (gdata-samples.java-1.x.x.java.zip) xuống.
  3. Trích xuất nguồn của thư viện ứng dụng vào máy tính của bạn.
  4. Chuyển đến gdata/java/build-src/build.properties và mở tệp.
  5. Chỉnh sửa các phần phụ thuộc bên ngoài để trỏ đến vị trí của các tệp .jar trên máy cục bộ.
  6. Lưu ý: Trên Windows, hãy nhớ thoát dấu gạch chéo ngược. Ví dụ:

    servlet.jar=C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\lib\\servlet-api.jar

Chạy mẫu

Tất cả các mẫu có sẵn nằm trong gdata/java/sample từ kho lưu trữ gdata-samples.java-1.x.x.java.zip. Tệp gdata/java/build-samples/build.properties chứa tất cả giá trị đầu vào của các mẫu có trong thư viện. Đặt sample.credentials.usernamesample.credentials.password thành tên người dùng và mật khẩu hợp lệ. Chúng ta có thể sử dụng Ant để tạo và thực thi các mẫu.

Kiểm tra xem bạn đã cài đặt mọi thứ đúng cách chưa bằng cách mở lời nhắc lệnh, thay đổi sang thư mục gdata/java và nhập:

ant -f build-samples.xml sample.calendar.run

Bạn có thể nhận được một số thông báo hoặc thông báo cảnh báo, nhưng chỉ cần tìm thông báo BUILD SUCCESSFUL ở cuối! Hãy xem phần khắc phục sự cố nếu bạn không nhận được thông báo thành công.

Thử mẫu tương tác hơn bằng cách nhập:

ant -f build-samples.xml sample.spreadsheet.guidemo.run

Để tìm hiểu cách chạy một mẫu cụ thể, hãy truy cập gdata/java/build-samples và kiểm tra tệp bản dựng cho mẫu đó. Tìm mục samples run.

Khắc phục sự cố

Nếu bản dựng của bạn không hoạt động với thông báo lỗi như:

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

hoặc thông báo lỗi tương tự về một tệp thiết yếu bị thiếu trong dự án, thì có thể bạn đang chạy phiên bản Ant cũ. Nhập ant -version để đảm bảo bạn đang chạy từ 1.7 trở lên. Hãy tham khảo hướng dẫn về phần phụ thuộc ở trên để có được phiên bản Ant mới nhất.

Xây dựng ứng dụng riêng

Câu hỏi tiếp theo là cách xây dựng ứng dụng của riêng bạn. Tôi sẽ xem qua chương trình tương đương "Xin chào thế giới!" sử dụng dịch vụ Lịch để triển khai chức năng cơ bản. Bạn có thể tìm thêm thông tin chi tiết trong hướng dẫn dành cho nhà phát triển của Thư viện ứng dụng Java, cũng như từng hướng dẫn dành cho nhà phát triển.

Tạo một tệp có tên là CalendarTest.java. Bắt đầu bằng cách thêm các câu lệnh nhập sau.

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.*;

Đây là toàn bộ chương trình (không có quá trình xử lý ngoại lệ).

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");

Sau đó, hệ thống sẽ đặt URL của tài nguyên. Trong trường hợp này, đây là nơi bạn có thể yêu cầu danh sách tất cả lịch từ người dùng đã được xác thực.

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

Dòng dưới đây sẽ thực thi lệnh GET thực tế trên URL và đặt nguồn cấp dữ liệu kết quả vào một đối tượng gọn gàng.

CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

Vòng lặp for dưới đây sẽ lặp lại qua từng mục nhập và in tiêu đề. Lưu ý tiêu đề được lưu trữ dưới dạng TextConstruct, vì vậy bạn cần có lệnh gọi hàm bổ sung để lấy văn bản thuần tuý.

for (int i = 0; i < resultFeed.getEntries().size(); i++) {
    CalendarEntry entry = resultFeed.getEntries().get(i);
    System.out.println("\t" + entry.getTitle().getPlainText());
}

Điều đó khá cơ bản. Hãy cùng tìm hiểu một số điều phổ biến khác. Đoạn mã sau đây sẽ hướng dẫn bạn cách tạo một đối tượng và chèn đối tượng đó. Ví dụ: mục này sẽ là một mục sự kiện mới trên lịch.

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);

Một thao tác phổ biến khác là tạo truy vấn.

//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());
}

Trong khi gỡ lỗi, một thao tác hữu ích khác là kết xuất tệp XML thô. Có một tiện ích hữu ích mà bạn có thể sử dụng để thực hiện việc này trong thư viện. Đảm bảo bạn đã nhập samples.util.*. Sau đó, kết xuất nguồn cấp dữ liệu hoặc mục nhập.

CommonUtils.dump(resultFeed, System.out);

Để biết thêm các công cụ gỡ lỗi sâu hơn, hãy xem bài viết Gỡ lỗi ứng dụng API dữ liệu của Google: Khám phá lưu lượng truy cập từ trong chương trình của bạn để biết cách bật tính năng ghi nhật ký từ trong thư viện ứng dụng.

Điều này sẽ giúp bạn cảm nhận được quá trình tạo ứng dụng bằng thư viện ứng dụng. Để biết thêm thông tin chi tiết, hãy xem phần kết luận để biết danh sách các hướng dẫn dành cho nhà phát triển cho mỗi API Dữ liệu của Google.

Kết luận

Chúng tôi hy vọng giờ đây bạn đã có thể xây dựng và chạy ứng dụng bằng Thư viện ứng dụng Java của GData! Tôi chưa đề cập đến bất kỳ IDE phổ biến nào mà bạn có thể dùng, nhưng bạn nên xem xét các công cụ phổ biến như Eclipse hoặc NetBeans. Dưới đây là một số đường liên kết bổ sung có thể hữu ích:

Nếu có bất kỳ câu hỏi nào về việc sử dụng Thư viện ứng dụng Java với API nào, bạn có thể cho chúng tôi biết bằng cách đăng bài trong diễn đàn dành riêng cho API.