Начало работы с клиентской библиотекой Google Data Java

Стефани Лю, команда API данных Google
сентябрь 2007 г.
  1. Введение
  2. Установка зависимостей
    1. В Windows
    2. В Mac OS X
    3. В Linux
  3. Установка клиентской библиотеки данных Google
  4. Запуск образцов
  5. Создание собственных приложений
  6. Заключение
  7. Приложение: установка переменных среды

Введение

Никогда не бывает легко начать разработку с незнакомым API, поэтому в этой статье приведены пошаговые инструкции по загрузке и установке клиентской библиотеки Java для API данных Google ("GData"). Я пройдусь по получению всех зависимостей и настройке переменных среды, которые вам понадобятся. Вы будете смешивать различные сервисы GData в кратчайшие сроки!

Используете Эклипс?

Ознакомьтесь со статьей Coding in the Shade: Использование Eclipse с API данных Google .

Установка зависимостей

Клиентская библиотека GData Java имеет следующие внешние зависимости. В следующих разделах будет описано, как установить эти зависимости на вашу любимую операционную систему (или ОС, с которой вы застряли на работе).

  • JDK (комплект для разработки Java) версии 1.5+
  • Apache Ant версии 1.7+
  • mail.jar в Sun JavaMail API 1.4+
  • activation.jar в Sun JavaBeansActivationFramework. Это требуется только для определенных API-интерфейсов мультимедиа, включая API данных списка документов, API веб-альбомов Picasa и API данных YouTube.
  • servlet.jar в Sun Servlet API версии 2.3+. Это требуется только при выполнении образцов кода в пакетах «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.xxjava.zip ) и примеры ( gdata-samples.java-1.xxjava.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.xxjava.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: изучение трафика из вашей программы» о том, как включить ведение журнала из клиентской библиотеки.

Это должно дать вам представление о том, на что похоже создание приложений с использованием клиентской библиотеки. Для получения более подробной информации см. раздел «Выводы» со списком доступных руководств для разработчиков для каждого API данных Google.

Заключение

Надеюсь, теперь вы можете создавать и запускать приложения с помощью клиентской библиотеки GData Java! Я не рассматривал ни одну из популярных IDE, которые вы можете использовать, но вы можете изучить популярные инструменты, такие как Eclipse или NetBeans . Вот несколько дополнительных ссылок, которые могут быть полезны:

Если у вас есть какие-либо вопросы по использованию клиентской библиотеки Java с каким-либо API, вы можете сообщить нам об этом, разместив сообщение на форумах , посвященных API.