我可能会过度思考这一点。在我的网站上,我想从我的公共谷歌日历中使用某些数据。我的计划是将它放在服务器端,这样我就可以像处理它一样,缓存它并按照我想要的方式格式化它。
我一直在考虑使用Google Api库,但我无法通过任何授权障碍。一个服务帐户听起来像我真正想要的,但我无法解决这种情况下的工作方式。
旧的GDATA apis会没问题,但是我并不是非常热衷于使用它们,因为它们在这一点上看起来已经被新版库所推崇了。
由于它是所有公共数据,我希望有一种更简单的方法来获取我正在寻找的事件数据。
如果重要,我的网站是Asp.Net(MVC)。
更新
好的,我绝对是在思考它。看到我的回答。
答案 0 :(得分:0)
对此(我正在使用的那个)的一个好的答案是简单地使用日历的公共地址来获取数据。这是我忘记的一个选项,它适用于这种特殊情况。
如果您转到特定日历的设置并选择所需的格式,您可以找到数据的网址(我在这种情况下使用xml。)
您从此服务中获得的数据非常适合人工阅读,但我可以使其适用于我正在做的事情。
答案 1 :(得分:0)
现在已经从Google日历中删除了RSS,我一直在寻找一个简单的替代品。我挖了一遍,在Google Calendar API中发现了以下内容:calendar.events.list
Calendar Events List in Google API Explorer是开始使用不同参数和选项的好地方 - 它会为您构建一个示例请求字符串。您可以看到我指定的最短时间为2016年2月5日,按开始时间排序,并显示已删除的事件。
GET https://www.googleapis.com/calendar/v3/calendars/[CALENDAR ID HERE]/events?
orderBy=startTime&showDeleted=true&singleEvents=true&
timeMin=2016-02-05T00%3A00%3A00Z&key={YOUR_API_KEY}
结果是JSON,因此您可以使用自己喜欢的编程语言,ASP.NET或其他任何方式解析它。结果如下:
{
"kind": "calendar#events",
"etag": "\"123456789123456\"",
"summary": "My Public Calendar",
"updated": "2016-01-29T14:38:29.392Z",
"timeZone": "America/New_York",
"accessRole": "reader",
"defaultReminders": [ ],
"items": [ {
"kind": "calendar#event",
"etag": "\"9876543210987654\"",
"id": "sfdljgsdkjgheakrht4sfdjfscd",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=sdgtukhysrih489759sdkjfhwseihty7934hyt94hdorujt3q95uy689u9yhfdgnbiwe5hy",
"created": "2015-07-06T16:21:59.000Z",
"updated": "2015-07-06T16:21:59.329Z",
"summary": "In-Service Day",
"location": "Maui, HI",
"creator": {
"email": "abra@cadabra.com",
"displayName": "Joe Abra"
},
"organizer": {
"email": "cadabra.com_sejhrgtuiwerghwi4hruh@group.calendar.google.com",
"displayName": "My Public Calendar",
"self": true
},
"start": {
"date": "2016-02-08"
},
"end": {
"date": "2016-02-09"
},
"transparency": "transparent",
"iCalUID": "isdt56y784g78ty86tgsfdgh@google.com",
"sequence": 0
},
{
...
}]
}