在Google上将Google日历与我自己的日历应用同步

时间:2012-09-18 15:50:57

标签: android google-calendar-api android-calendar

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

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

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

这是link,可以通过让用户输入用户名和密码来与Google日历帐户建立联系。密码。但是,这不是我想要的。我想在我的代码中硬编码用户名和密码,但他们使用OAuth然后我不能硬编码我的用户名/通行证。我还尝试了link中的ClientLogin,但它也不起作用。它让我误以为错误"GoogleTransport cannot be resolved"。我搜索了这个错误的解决方案,ppl建议我回到OAuth。这真让我感到困惑。

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

我发现的最后一条信息是向allcalendars Feed URL.发送经过身份验证的GET请求但是,我从未这样做过,如果您认为它应该有效,请帮助我。

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

1 个答案:

答案 0 :(得分:3)

您已经掌握了Android日历创建部分,现在只需要阅读Google日历中的活动即可将其添加到新创建的Android日历中。

这很容易。

  1. Google calendar web app公开您的日历。 (无论如何将你的登录/密码嵌入你的应用程序是一个坏主意,任何人都可以窃取它)。
  2. 在“议程参数”页面上,在公开日历网址部分附近,您可以复制公共 AgendaId (格式为xxxYYYzzz@group.calendar.google.com )。
  3. 从您的应用中,对此网址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执行http GET请求(用实际值替换 AgendaId ),您将能够以json格式阅读未来的事件。
  4. 要调整格式(json / xml)或返回的条目数,请阅读此处的文档:https://developers.google.com/gdata/docs/2.0/reference#Queries
  5. 另外,请注意这是旧的API。新的API需要您注册一个帐户才能使用它,并且每天限制为10,000个免费请求。