【问题标题】:Reading XML responses from Google Calendar service with Java使用 Java 从 Google 日历服务读取 XML 响应
【发布时间】:2011-08-15 17:30:00
【问题描述】:

我想使用作为 Google 日历 API 的一部分提供的新查询繁忙时间 API 来检索用户的繁忙时间。结果是一个包含用户忙碌时间块的只读提要,如下所示:

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gCal="http://schemas.google.com/gCal/2005"
 xmlns:gd="http://schemas.google.com/g/2005"
 gd:kind='calendar#freebusy' >
  <id>http://www.google.com/calendar/feeds/default/freebusy/busy-times/liz%40example.com</id>
  <updated>2010-03-13T00:00:00.000Z</udpated>
  <link rel='self'
  href='https://www.google.com/calendar/feeds/default/freebusy/busy-times/liz%40example.com' />
  <author>
    <name>liz@example.com</name>
    <email>liz@example.com</email>
  </author>
  <gCal:timeRange>
    <gd:when startTime='2010-03-13T00:00:00Z' endTime='2010-03-14T00:00:00Z'/>
  <gCal:timeRange>
  <gCal:busy>
    <gd:when startTime='2010-03-13T14:00Z' endTime='2010-03-13T14:30Z'/>
  </gCal:busy>
  <gCal:busy>
    <gd:when startTime='2010-03-13T16:00Z' endTime='2010-03-13T16:30Z'/>
  </gCal:busy>
</entry>

基于上面的返回提要,我如何使用 Java 的 Calendar Data API 来获取每个忙碌时间块,以便我可以阅读并使用它们做一些事情,比如打印到终端?这返回的 feed 类型是什么,CalendarEventFeed、CalendarFeed、...?

CalendarService service = new CalendarService("myapp-v1");          
service.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());    
URL feedUrl = new URL(METAFEED_URL_BASE+FREEBUSY_FEED_URL_SUFFIX+user.username());
CalendarEventFeed resultFeed = service.getFeed(feedUrl, CalendarEventFeed.class);

【问题讨论】:

    标签: java xml google-calendar-api gdata-api


    【解决方案1】:

    AppEngine 支持(从 1.2.8 开始)JAXB XML-to-objects 数据绑定 API。网络上有很多示例和教程(尽管大多数都关注从 XML 模式自动生成类 - 您不需要这个)。一个例子:http://www.vogella.de/articles/JAXB/article.html

    您也可以使用Calendar Data API for Java,完全放弃 XML 转换步骤。

    【讨论】:

    • 谢谢,您的回答非常有帮助,但我意识到我问错了问题。我已经编辑并重新命名了我的帖子。非常感谢你让我朝着正确的方向思考。
    猜你喜欢
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多