0

特定のカレンダーの特定の時間範囲のイベントを表示したいのですが、API の使用に問題があります。これは汎用 API であり、DOM の使用を思い出させます。問題は、情報の多くが一般的な基本クラスにあるため、扱いが難しいように見えることです。

Groovy または Java を使用してカレンダーのイベントを取得するにはどうすればよいですか? curl を使用して資格情報を渡す例はありますか?

サンプルコードをいただければ幸いです。

4

2 に答える 2

1

このドキュメントには、ほとんどの一般的なユース ケースの例が含まれています。たとえば、特定の時間範囲のイベントを取得するコードは次のとおりです。

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

次のようなものを使用して、これを少しグルーヴィーにすることができます。

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);
于 2010-06-14T07:47:54.900 に答える
1

カレンダーを変更する必要がない場合は、カレンダーのプライベート フィード 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

ハッピーハッキング。

于 2010-06-12T18:58:54.273 に答える