Mulai Menggunakan Library Klien Java Google Data

Stephanie Liu, Tim Google Data API
September 2007
  1. Pengantar
  2. Menginstal Dependensi
    1. Di Windows
    2. Di Mac OS X
    3. Di Linux
  3. Menginstal Library Klien Google Data
  4. Menjalankan Contoh
  5. Membangun Aplikasi Anda Sendiri
  6. Kesimpulan
  7. Lampiran: Menetapkan Variabel Lingkungan

Pengantar

Memulai pengembangan dengan API yang tidak dikenal tidaklah mudah, jadi artikel ini berisi petunjuk langkah demi langkah tentang cara mendownload dan menginstal Library Klien Java Google Data API ("GData"). Saya akan membahas cara mendapatkan semua dependensi dan menyetel variabel lingkungan yang Anda perlukan. Anda akan dapat menggabungkan berbagai layanan GData dalam waktu singkat.

Menggunakan Eclipse?

Lihat artikel Coding in the Shade: Using Eclipse with Google Data APIs.

Menginstal Dependensi

GData Java Client Library memiliki dependensi eksternal berikut. Bagian berikut akan menjelaskan cara menginstal dependensi ini di sistem operasi favorit Anda (atau OS yang Anda gunakan di kantor).

  • JDK (Java Development Kit) versi 1.5+
  • Apache Ant versi 1.7+
  • mail.jar di JavaMail API 1.4+ Sun
  • activation.jar di JavaBeansActivationFramework Sun. Hal ini hanya diperlukan untuk API khusus media, termasuk Document List Data API, Picasa Web Album API, dan YouTube Data API.
  • servlet.jar di Servlet API versi 2.3+ Sun. Ini hanya diperlukan jika menjalankan contoh kode dalam paket 'sample.authsub' atau 'sample.gbase.recipe'.

Beberapa dependensi .jar hanya diperlukan untuk sampel tertentu, tetapi untuk menghindari error build, sebaiknya dapatkan semuanya. Pilih sistem operasi yang Anda inginkan untuk melanjutkan: Windows, Mac OS X, atau Linux.

Menginstal Library Klien Google Data

  1. Buka http://code.google.com/p/gdata-java-client/downloads/list
  2. Download versi terbaru library klien (gdata-src.java-1.x.x.java.zip) dan sampel (gdata-samples.java-1.x.x.java.zip).
  3. Ekstrak sumber library klien ke komputer Anda.
  4. Buka gdata/java/build-src/build.properties dan buka file.
  5. Edit dependensi eksternal untuk mengarah ke lokasi file .jar di komputer lokal Anda.
  6. Catatan: Di Windows, pastikan untuk meng-escape garis miring terbalik. Misalnya,

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

Menjalankan Contoh

Semua sampel yang tersedia berada di bagian gdata/java/sample dari arsip gdata-samples.java-1.x.x.java.zip. File gdata/java/build-samples/build.properties berisi semua nilai input untuk sampel yang ada dalam library. Tetapkan sample.credentials.username dan sample.credentials.password ke nama pengguna dan sandi yang valid. Kita dapat menggunakan Ant untuk membuat serta menjalankan contoh.

Uji untuk melihat apakah Anda telah menginstal semuanya dengan benar dengan membuka command prompt, beralih ke direktori gdata/java, dan mengetik:

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

Anda mungkin menerima beberapa pesan info atau peringatan, tetapi cukup cari pesan BUILD SUCCESSFUL di bagian akhir. Lihat bagian pemecahan masalah jika Anda tidak mendapatkan pesan berhasil.

Coba contoh yang lebih interaktif dengan mengetik:

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

Untuk mengetahui cara menjalankan sampel tertentu, buka gdata/java/build-samples dan periksa file build untuk sampel tersebut. Cari bagian samples run.

Pemecahan masalah

Jika build Anda gagal dengan pesan error seperti,

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

atau pesan error serupa tentang file penting yang tidak ada dalam project, Anda mungkin menjalankan Ant versi lama. Ketik ant -version untuk memastikan Anda menjalankan versi 1.7 atau yang lebih baru. Lihat petunjuk dependensi di atas untuk mendapatkan Ant versi terbaru.

Membangun Aplikasi Anda Sendiri

Pertanyaan berikutnya adalah cara membangun aplikasi Anda sendiri. Saya akan membahas program yang setara dengan "Hello, World!" menggunakan layanan Kalender untuk menunjukkan fungsionalitas dasar. Informasi yang lebih mendetail dapat ditemukan di panduan developer Java Client Library, serta panduan developer produk individual.

Buat file bernama CalendarTest.java. Mulai dengan menyertakan pernyataan impor berikut.

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

Berikut adalah seluruh program (tanpa penanganan pengecualian).

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

Kemudian, URL resource ditetapkan. Dalam hal ini, di sinilah Anda dapat meminta daftar semua kalender dari pengguna terautentikasi.

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

Baris di bawah akan menjalankan perintah GET yang sebenarnya di URL dan menempatkan feed yang dihasilkan ke dalam objek yang rapi.

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

Loop for di bawah akan melakukan iterasi pada setiap entri dan mencetak judul. Perhatikan bahwa judul disimpan sebagai TextConstruct, sehingga panggilan fungsi tambahan diperlukan untuk mendapatkan teks biasa.

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

Itu cukup mendasar. Mari kita bahas beberapa hal umum lainnya. Cuplikan berikut akan menunjukkan cara membuat objek dan menyisipkannya. Untuk contoh kita, ini akan menjadi entri acara kalender baru.

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

Operasi umum lainnya adalah membuat kueri.

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

Saat melakukan proses debug, operasi lain yang berguna adalah membuang XML mentah. Ada utilitas praktis yang dapat Anda gunakan untuk melakukannya di library. Pastikan samples.util.* diimpor. Kemudian, hapus feed atau entri.

CommonUtils.dump(resultFeed, System.out);

Untuk alat proses debug yang lebih mendalam, lihat artikel Proses Debug Klien Google Data API: Menjelajahi Traffic dari Dalam Program Anda tentang cara mengaktifkan logging dari dalam library klien.

Hal ini akan memberi Anda gambaran tentang cara membangun aplikasi menggunakan library klien. Untuk informasi yang lebih mendetail, lihat bagian kesimpulan untuk mengetahui daftar panduan developer yang tersedia untuk setiap Google Data API.

Kesimpulan

Semoga sekarang Anda dapat mem-build dan menjalankan aplikasi menggunakan GData Java Client Library. Saya tidak membahas IDE populer yang dapat Anda gunakan, tetapi Anda dapat mempelajari alat populer seperti Eclipse atau NetBeans. Berikut beberapa link tambahan yang mungkin berguna:

Jika ada pertanyaan tentang penggunaan Library Klien Java dengan API apa pun, Anda dapat memberi tahu kami dengan memposting di forum khusus API.