Google Data Java İstemci Kitaplığı'nı kullanmaya başlama

Stephanie Liu, Google Veri API'leri Ekibi
Eylül 2007
  1. Giriş
  2. Bağımlılıkları Yükleme
    1. Windows'da
    2. Mac OS X'te
    3. Linux'ta
  3. Google Data Client Library'yi yükleme
  4. Koşu Örnekleri
  5. Kendi uygulamalarınızı oluşturma
  6. Sonuç
  7. Ek: Ortam Değişkenlerini Ayarlama

Giriş

Tanıdık olmayan bir API ile geliştirmeye başlamak her zaman zordur. Bu nedenle, bu makalede Google Veri API'leri ("GData") Java İstemci Kitaplığı'nı indirme ve yükleme ile ilgili adım adım talimatlar verilmektedir. Gerekli tüm bağımlılıkları edinme ve ortam değişkenlerini ayarlama sürecini açıklayacağım. Kısa sürede farklı GData hizmetlerini birleştirebileceksiniz.

Eclipse mi kullanıyorsunuz?

Coding in the Shade: Using Eclipse with Google Data APIs (Gölgede Kodlama: Eclipse'i Google Veri API'leriyle Kullanma) başlıklı makaleye göz atın.

Bağımlılıkları Yükleme

GData Java İstemci Kitaplığı'nın aşağıdaki harici bağımlılıkları vardır. Aşağıdaki bölümlerde bu bağımlılıkları en sevdiğiniz işletim sistemine (veya iş yerinde kullanmak zorunda olduğunuz işletim sistemine) nasıl yükleyeceğiniz açıklanmaktadır.

  • JDK (Java Development Kit) sürümü 1.5 veya üzeri
  • Apache Ant 1.7 veya sonraki sürümler
  • Sun'ın JavaMail API 1.4+ sürümündeki mail.jar
  • Sun's JavaBeansActivationFramework'teki activation.jar. Bu yalnızca Document List Data API, Picasa Web Album API ve YouTube Data API gibi medyaya özgü API'ler için gereklidir.
  • Sun'ın Servlet API sürüm 2.3+ sürümündeki servlet.jar. Bu yalnızca "sample.authsub" veya "sample.gbase.recipe" paketlerindeki kod örnekleri yürütülürken gereklidir.

.jar bağımlılıklarından bazıları yalnızca belirli örnekler için gereklidir ancak derleme hatalarını önlemek için her şeyi indirmeniz önerilir. Devam etmek için istediğiniz işletim sistemini seçin: Windows, Mac OS X veya Linux.

Google Data Client Library'yi yükleme

  1. http://code.google.com/p/gdata-java-client/downloads/list adresini ziyaret edin.
  2. İstemci kitaplığının (gdata-src.java-1.x.x.java.zip) ve örneklerin (gdata-samples.java-1.x.x.java.zip) en son sürümünü indirin.
  3. İstemci kitaplığı kaynağını bilgisayarınıza çıkarın.
  4. gdata/java/build-src/build.properties simgesine gidin ve dosyayı açın.
  5. Harici bağımlılıkları, yerel makinenizdeki .jar dosyalarının konumlarına işaret edecek şekilde düzenleyin.
  6. Not: Windows'da ters eğik çizgileri kaçırdığınızdan emin olun. Örneğin,

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

Çalışan Örnekler

Mevcut tüm örnekler, gdata-samples.java-1.x.x.java.zip arşivindeki gdata/java/sample altında yer alır. gdata/java/build-samples/build.properties dosyası, kitaplıkta bulunan örneklerin tüm giriş değerlerini içerir. sample.credentials.username ve sample.credentials.password değerlerini geçerli bir kullanıcı adı ve şifre olarak ayarlayın. Örnekleri oluşturmak ve yürütmek için Ant'i kullanabiliriz.

Komut istemini açıp gdata/java dizinine geçerek ve şunu yazarak her şeyi doğru yükleyip yüklemediğinizi test edin:

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

Bazı bilgi veya uyarı mesajları alabilirsiniz ancak en sondaki BUILD SUCCESSFUL mesajını arayın. Başarılı sonuç mesajı almazsanız sorun giderme bölümüne bakın.

Aşağıdaki metni yazarak daha etkileşimli bir örnek deneyin:

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

Belirli bir örneğin nasıl çalıştırılacağını öğrenmek için gdata/java/build-samples bölümüne gidin ve ilgili örneğin derleme dosyasını kontrol edin. samples run bölümünü bulun.

Sorun giderme

Derlemeniz şu gibi bir hata mesajıyla başarısız olursa:

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

veya projede temel bir dosyanın eksik olmasıyla ilgili benzer bir hata mesajı alıyorsanız Ant'in eski bir sürümünü kullanıyor olabilirsiniz. 1.7 veya sonraki bir sürümü çalıştırdığınızdan emin olmak için ant -version yazın. Ant'in en son sürümünü edinmek için yukarıdaki bağımlılık talimatlarına bakın.

Kendi uygulamalarınızı oluşturma

Bir sonraki soru, kendi uygulamanızı nasıl oluşturacağınızdır. Temel işlevleri göstermek için Calendar hizmetini kullanarak "Merhaba Dünya!" eşdeğeri bir programı inceleyeceğim. Daha ayrıntılı bilgiyi Java İstemci Kitaplığı'nın geliştirici kılavuzunda ve ayrı ayrı ürünlerin geliştirici kılavuzlarında bulabilirsiniz.

CalendarTest.java adlı bir dosya oluşturun. Aşağıdaki içe aktarma ifadelerini ekleyerek başlayın.

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

İşte programın tamamı (hata işleme olmadan).

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

Ardından, kaynağın URL'si ayarlanır. Bu durumda, kimliği doğrulanmış kullanıcıdan tüm takvimlerin listesini isteyebilirsiniz.

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

Aşağıdaki satır, URL'de gerçek GET komutunu çalıştırır ve sonuçlanan feed'i düzenli bir nesneye yerleştirir.

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

Aşağıdaki for döngüsü her girişi yineler ve başlığı yazdırır. Başlığın TextConstruct olarak depolandığını unutmayın. Bu nedenle, düz metni almak için ek bir işlev çağrısı gerekir.

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

Bu oldukça temel bir örnekti. Şimdi de birkaç yaygın durumdan bahsedelim. Aşağıdaki snippet, nasıl nesne oluşturup ekleyeceğinizi gösterir. Örneğimizde bu, yeni bir takvim etkinliği girişi olacaktır.

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

Sık kullanılan bir diğer işlem de sorgu oluşturmaktır.

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

Hata ayıklama sırasında yararlı olabilecek bir diğer işlem de ham XML'yi boşaltmaktır. Kitaplıkta bunu yapmak için kullanabileceğiniz kullanışlı bir yardımcı program vardır. samples.util.* öğesinin içe aktarıldığından emin olun. Ardından, feed'i veya girişi boşaltın.

CommonUtils.dump(resultFeed, System.out);

Daha da ayrıntılı hata ayıklama araçları için istemci kitaplığından günlük kaydını nasıl etkinleştireceğinizi açıklayan Google Veri API'si İstemcilerinde Hata Ayıklama: Programınızdaki Trafiği Keşfetme başlıklı makalemize göz atın.

Bu sayede, istemci kitaplığını kullanarak uygulama geliştirmenin nasıl bir deneyim olduğunu anlayabilirsiniz. Daha ayrıntılı bilgi için her Google Veri API'siyle ilgili mevcut geliştirici kılavuzlarının listesini sonuç bölümünde bulabilirsiniz.

Sonuç

Artık GData Java İstemci Kitaplığı'nı kullanarak uygulamalar oluşturup çalıştırabileceğinizi umuyoruz. Kullanabileceğiniz popüler IDE'lerden bahsetmedim ancak Eclipse veya NetBeans gibi popüler araçları inceleyebilirsiniz. Yararlı olabilecek bazı ek bağlantılar:

Java istemci kitaplığını herhangi bir API ile kullanma hakkında sorularınız varsa API'ye özel forumda yayınlayarak bize bildirebilirsiniz.