Как получить все записи календаря за определенный промежуток времени, используя Google Calendar API - PullRequest
0 голосов
/ 12 июня 2010

Я хочу просматривать события за определенный промежуток времени для определенного календаря, но у меня возникают проблемы с использованием API. Это универсальный API, который напоминает мне об использовании DOM. Проблема в том, что с ней трудно работать, потому что большая часть информации находится в базовых базовых классах.

Как получить события для календаря, используя Groovy или Java? У кого-нибудь есть пример передачи учетных данных с использованием curl?

Пример кода будет приветствоваться.

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Этот документ содержит примеры для большинства распространенных случаев использования. Например, вот код для извлечения событий за определенный промежуток времени

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

CalendarQuery myQuery = new CalendarQuery(feedUrl);
myQuery.setMinimumStartTime(DateTime.parseDateTime("2006-03-16T00:00:00"));
myQuery.setMaximumStartTime(DateTime.parseDateTime("2006-03-24T23:59:59"));

CalendarService myService = new CalendarService("exampleCo-exampleApp-1");
myService.setUserCredentials("jo@gmail.com", "mypassword");

// Send the request and receive the response:
CalendarEventFeed resultFeed = myService.query(myQuery, Feed.class);

Вы можете сделать это немного Groovier, используя что-то вроде:

def myQuery = new CalendarQuery("http://www.google.com/calendar/feeds/default/private/full".toURL()).with {
  minimumStartTime = DateTime.parseDateTime("2006-03-16T00:00:00");
  maximumStartTime = DateTime.parseDateTime("2006-03-24T23:59:59");
  it
}

def myService = new CalendarService("exampleCo-exampleApp-1");
myService.setUserCredentials("jo@gmail.com", "mypassword");

// Send the request and receive the response:
def resultFeed = myService.query(myQuery, Feed);
1 голос
/ 12 июня 2010

Если вам не нужно изменять календарь, вам нужно всего лишь получить URL-адрес личного канала календарей, и вы можете использовать что-то подобное (взято со страницы http://eu.gr8conf.org/agenda).Используется библиотека ICal4J .

def url = "http://www.google.com/calendar/ical/_SOME_URL_/basic.ics".toURL()
def cal = Calendars.load(url)

def result = cal.components.sort { it.startDate.date }.collect {
  def e = new Expando()
  e.startDate = it.startDate.date
  e.endDate = it.endDate.date
  e.title = it.summary.value
  if (it.location) {
    e.presentation = Presentation.findByName(it.location.value, [fetch:"join"])
  }

  e.toString = {
    "$startDate: $title"
  }

  return e
}

result

Счастливого взлома.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...