Google Verileri 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 Veri İstemcisi Kitaplığı'nı yükleme
  4. Koşu Örnekleri
  5. Kendi uygulamalarınızı oluşturma
  6. Sonuç
  7. Ek: Ortam Değişkenlerini Ayarlama

Giriş

Bilmediğiniz bir API ile geliştirme yapmaya başlamak hiç kolay olmadığı için bu makalede Google Veri API'ları ("GData") Java İstemci Kitaplığı'nı nasıl indirip yükleyeceğinizle ilgili adım adım talimatlar verilmiştir. Tüm bağımlıları ele alacağız ve ihtiyacınız olan ortam değişkenlerini ayarlayacağım. Farklı GData hizmetlerini çok kısa sürede birleştireceksiniz!

Eclipse mi kullanıyorsunuz?

Coding in the Shade: Use Eclipse with Google Data API'ler (Kodda Kodlama: Eclipse'i Google Veri API'leriyle Kullanma) makalesine göz atın.

Bağımlıları Yükleme

GData Java İstemci Kitaplığı'nda aşağıdaki harici bağımlılıklar bulunur. Aşağıdaki bölümlerde, bu bağımlılıkları favori işletim sisteminize (veya iş yerinde kaldığınız işletim sistemine) nasıl yükleyeceğiniz açıklanmaktadır.

  • JDK (Java Geliştirme Kiti) 1.5 ve üzeri sürümler
  • Apache Ant 1.7 ve sonraki sürümleri
  • Sun'ın JavaMail API 1.4 ve sonraki sürümlerinde mail.jar
  • Sun. JavaBeansActivateFramework'te etkinleştirme.jar. Bu özellik yalnızca Document List Data API, Picasa Web Album API'si ve YouTube Data API'sı dahil olmak üzere, medyaya özel API'lar için gereklidir.
  • servlet.jar, Sun'ın Servlet API'sinin 2.3 ve sonraki sürümleri. Bu işlem yalnızca "sample.authsub" veya "sample.gbase.Recipe" paketlerinde kod örnekleri yürütülürken gereklidir.

.jar bağımlılıklarından birkaçı yalnızca belirli örnekler için gereklidir ancak derleme hatalarını önlemek için en iyisi her şeyi almaktır. Devam etmek için işletim sisteminizi seçin: Windows, Mac OS X veya Linux.

Google Veri İstemcisi Kitaplığı'nı 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) en güncel sürümünü ve örnekleri (gdata-samples.java-1.x.x.java.zip) indirin.
  3. İstemci kitaplığı kaynağını bilgisayarınıza çıkarın.
  4. gdata/java/build-src/build.properties adresine gidin ve dosyayı açın.
  5. Harici bağımlılıkları, yerel makinenizdeki .jar dosyalarının konumlarını işaret edecek şekilde düzenleyin.
  6. Not: Windows'da ters eğik çizgilerden kaçınmayı unutmayın. Örneğin,

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

Örnekleri Çalıştırma

Kullanılabilen tüm örnekler gdata-samples.java-1.x.x.java.zip arşivinde gdata/java/sample altında bulunmaktadı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 belirleyin. Ant'i kullanarak örnekleri oluşturabiliyor ve yürütebiliyoruz.

Bir komut istemi açıp gdata/java dizinine geçerek ve şunları yazarak her şeyi doğru bir şekilde yükleyip yüklemediğinizi kontrol edin:

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

Bazı bilgiler veya uyarı mesajları alabilirsiniz ancak sonda BUILD SUCCESSFUL mesajına bakın. Başarılı bir mesaj görmezseniz sorun giderme bölümüne bakın.

Şunları yazarak daha etkileşimli bir örnek deneyin:

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

Belirli bir örneği nasıl çalıştıracağınızı öğrenmek için gdata/java/build-samples sayfasına gidip ilgili örneğin derleme dosyasını kontrol edin. samples run bölümünü bulun.

Sorun giderme

Derlemeniz aşağıdaki 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 yer almayan önemli bir dosyayla ilgili benzer bir hata mesajıyla Ant'in eski bir sürümünü çalıştırı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

Sıradaki soru, kendi uygulamanızı nasıl oluşturabileceğinizdir. Temel işlevleri göstermek için Takvim hizmetini kullanan "Hello, World!" eşdeğer programını gerçekleştireceğim. Daha ayrıntılı bilgileri, Java İstemci Kitaplığı'nın geliştirici kılavuzunda ve ürün 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.*;

Tüm programı (istisnalarla ilgili işlem yapmadan) burada bulabilirsiniz.

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 talep edebileceğiniz yer burasıdır.

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ıracak ve elde edilen feed'i düzenli bir nesneye dönüştürecektir.

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

Aşağıdaki for döngüsü, her girişi tekrarlar ve başlığı yazdırır. Başlığın TextConstruct olarak depolandığını ve dolayısıyla düz metni almak için fazladan bir işlev çağrısının gerekli olduğunu unutmayın.

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

Bu çözüm oldukça basitti. Şimdi, sık kullanılan birkaç noktaya göz atalım. Aşağıdaki snippet'te, bir nesnenin nasıl oluşturulacağı ve yerleştirileceği gösterilmektedir. Örneğin, bu yeni bir takvim etkinliği girişidir.

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 diğer bir 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 diğer yararlı bir işlem de ham XML'yi göndermektir. Kitaplıkta bunu yapmak için kullanabileceğin pratik bir yardımcı program var. samples.util.* uygulamasının içe aktarıldığından emin olun. Ardından, feed'i veya girişi doldurun.

CommonUtils.dump(resultFeed, System.out);

Daha da fazla hata ayıklama aracı için istemci kitaplığı içinden günlük kaydını etkinleştirmeyle ilgili Google Data API İstemcilerinde Hata Ayıklama: Programınız İçinde Trafiği Keşfetme makalemize bakın.

Bu, istemci kitaplığını kullanarak uygulama oluşturma sürecinin nasıl olduğu hakkında size bir fikir verecektir. Daha ayrıntılı bilgi için Google Cloud API'deki kullanılabilir geliştirici kılavuzlarının listesine göz atın.

Sonuç

Artık GData Java İstemci Kitaplığı'nı kullanarak uygulama oluşturup çalıştırabildiğinizi umuyoruz. Kullanabileceğiniz popüler IDE'lerden herhangi birine girmedim ancak Eclipse veya NetBeans gibi popüler araçlara göz atabilirsiniz. Size yardımcı olabilecek bazı ek bağlantılar şunlardır:

Herhangi bir API ile Java İstemci Kitaplığı'nı kullanma hakkında sorularınız varsa API'ye özel forumlarda sorularınızı yayınlayabilirsiniz.