1

您好,过去几天我一直在寻找很多东西,现在我很困惑该怎么做。

尝试做:创建我自己的日历并在日历上显示所有事件。我现在有 XML 文件中的所有事件,一切正常。现在我将我的日历应用程序与我的 OWN 谷歌日历帐户连接以从我自己的谷歌日历帐户中获取(只读)所有事件,因为我不想再使用 XML 文件了。当我想稍后更新事件时,这不是一个好主意。我不希望用户必须输入用户名/密码才能连接 Google 日历。我想对它进行硬编码。

问题:我通过使用 G-Data Google Api 为 iphone 做了类似的事情,它完全符合我的要求。但是,G-Data Google Api与 Android不兼容。然后我搜索并发现 ppl 建议使用 Google_api_java_client 代替。

这是一个链接,它可以通过让用户输入用户名和密码来连接谷歌日历帐户。然而,这不是我想要的。我想在我的代码中硬编码用户名和密码,但他们使用的是 OAuth,那么我无法硬编码我的用户名/密码。我也从这个链接尝试了 ClientLogin ,但它也不起作用。它不断向我抛出错误“GoogleTransport 无法解析”。我搜索了此错误的解决方案,请大家推荐我回到 OAuth。这真的让我现在很困惑。

我希望有人经历过这个并有解决方案,请帮助我/指导我如何在 android 上实现它。我只想从我自己的谷歌日历帐户中读取数据,请不要从本机日历应用程序中读取数据。

我找到的最后一条信息是向 allcalendars 提要URL发送经过身份验证的 GET 请求。但是,我从来没有这样做过,如果您认为它应该工作,请协助我。

我真的很感激任何帮助。非常感谢你。

4

1 回答 1

3

您已经获得了 Android 日历创建部分的权利,您现在只需要从您的 google 日历中读取事件即可将它们添加到您新创建的 Android 日历中。

这简单。

  1. Google 日历网络应用程序公开您的日历。(无论如何,在您的应用程序中嵌入您的登录名/密码是一个坏主意,任何人都可以窃取它)。
  2. 公共日历 URL部分附近的“议程参数”页面上,您将能够复制公共AgendaId(格式为xxxYYYzzz@group.calendar.google.com)。
  3. 从您的应用程序中,向此网址发出 http GET 请求https://www.google.com/calendar/feeds/AgendaId%40group.calendar.google.com/public/full?alt=json&orderby=starttime&max-results=15&singleevents= true&sortorder=ascending&futureevents=true(将AgendaId替换为实际值),您将能够以 json 格式读取未来事件。
  4. 要调整格式 (json/xml) 或返回条目的数量,请阅读此处的文档:https ://developers.google.com/gdata/docs/2.0/reference#Queries

另外,请注意这是旧 API。新 API 需要您注册一个帐户才能使用它,并且每天限制为 10 000 个免费请求。

于 2012-09-21T14:45:37.650 回答