1

私はJAVAのグーグルカレンダーのAPIからいくつかの情報を取得しようとしています。イベントの時間に関する情報にアクセスしようとしたときに、問題が発生しました。私は次のことをします:

CalendarService myService = new CalendarService("project_name");
myService.setUserCredentials("user", "pwd");
URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/private/full");
CalendarQuery q = new CalendarQuery(feedUrl);
CalendarEventFeed resultFeed = myService.query(q, CalendarEventFeed.class);
for (int i = 0; i < resultFeed.getEntries().size(); i++) {
              CalendarEventEntry g = resultFeed.getEntries().get(i);
List<When> t = g.getTimes();
//other operations
}

CalendarEventEntryのgetTimes()で取得されたリストtは常に空であり、その理由がわかりません。カレンダーイベントの場合、いつ発生するかについての説明が常に存在する必要があるため、これは私には奇妙に思えます...私は何が欠けていますか?

4

2 に答える 2

1

あなたは注意する必要がありますまたは単一の時間のイベント対定期的なイベント:

getTimesシングルタイムイベントに使用されます。

定期的なイベントの場合は、を使用する必要がありますgetRecurrence()

または、singleeventsプロパティをtrueに設定して、定期的なイベントが単一のイベントとして返され、getTimesが空でないリストを返すようにすることもできます。

CalendarQuery q = new CalendarQuery(feedUrl);
q.setStringCustomParameter("singleevents", "true");
CalendarEventFeed resultFeed = myService.query(q, CalendarEventFeed.class);
// process the results as single-events now...

参照:ここで「singleevents」というテキストを探してください。

singleevents注:マジッククッキーのURLを使用してフィードにアクセスすると、クエリでプロパティをどのように設定したかに関係なく、定期的なイベントは常に定期的なイベントとして返されます。

于 2010-09-06T02:45:36.363 に答える
0

このGoogleサポートリクエストも関連しています。(トトが提供したのと同じ答えですが、追加情報があります)

于 2011-03-14T04:43:22.350 に答える