特定のカレンダーの特定の時間範囲のイベントを表示したいのですが、API の使用に問題があります。これは汎用 API であり、DOM の使用を思い出させます。問題は、情報の多くが一般的な基本クラスにあるため、扱いが難しいように見えることです。
Groovy または Java を使用してカレンダーのイベントを取得するにはどうすればよいですか? curl を使用して資格情報を渡す例はありますか?
サンプルコードをいただければ幸いです。
特定のカレンダーの特定の時間範囲のイベントを表示したいのですが、API の使用に問題があります。これは汎用 API であり、DOM の使用を思い出させます。問題は、情報の多くが一般的な基本クラスにあるため、扱いが難しいように見えることです。
Groovy または Java を使用してカレンダーのイベントを取得するにはどうすればよいですか? curl を使用して資格情報を渡す例はありますか?
サンプルコードをいただければ幸いです。
このドキュメントには、ほとんどの一般的なユース ケースの例が含まれています。たとえば、特定の時間範囲のイベントを取得するコードは次のとおりです。
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);
カレンダーを変更する必要がない場合は、カレンダーのプライベート フィード 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
ハッピーハッキング。