出于某种原因,我从2010年开始回复此API调用中返回的事件:
https://www.googleapis.com/calendar/v3/calendars/myEmailHere@gmail.com/events?maxResults=15&key={KEY HERE}
以下是响应中的一些JSON(在项目数组中):
{
"kind":"calendar#event",
"etag":"\"SaH0JPgxpZtQtKmztOIhZtDaAls/MA\"",
"id":"_64oj8e9m8d1kab9p8cs48b9k68sj8ba284q48b9k64o4cd1p6crj6cq370",
"status":"confirmed",
"htmlLink":"LINK HERE",
"created":"2010-07-29T15:10:49.000Z",
"updated":"1970-01-01T00:00:00.000Z",
"summary":"Blood Drive",
"creator":{
"email":"myEmailHere@gmail.com",
"displayName":"Elite Gamer",
"self":true
},
"organizer":{
"email":"myEmailHere@gmail.com",
"displayName":"Elite Gamer",
"self":true
},
"start":{
"dateTime":"2010-08-23T14:00:00-05:00"
},
"end":{
"dateTime":"2010-08-23T19:00:00-05:00"
},
"iCalUID":"11496CCE-9C8D-4294-BA4D-410F493733C8",
"sequence":4
}
直到现在(2014年),我一直都是平等的。该API也显示它在20世纪更新了???。
我搞砸了什么?我错过了一个参数吗?我期待谷歌比这更多。
另外,我认为另一件事很奇怪。 Google日历还会返回两个不同的日期?!日期时间和日期。 (取决于全天活动)。这应该发生吗?它使开发人员必须检查响应中发送了哪一个,然后根据该日期解析日期。要不然,或者我在请求中缺少参数。
更新
环顾四周后,我发现了这个:
http://www.google.com/calendar/feeds/myEmail@gmail.com/public/full?alt=json&max-results=15
这可以获得确切的信息,但格式不同。但是,这确实会返回正确的日期;但由于某种原因,日期的格式仍然不同。为什么是这样?我应该使用哪一个?
答案 0 :(得分:2)
updated
在created
之前,这很奇怪。我之前没有注意到。它至少应与created
相同,但它显示1970-01-01T00:00:00.000Z
。这必须是unix time,这是0.谷歌做错了什么。但您的日历活动是在2010年创建的。您只需添加新活动即可查看是否正确。
根据RFC 3339,所有日期都是格式化的。您可以使用库来解析它们。
答案 1 :(得分:2)
出于某种原因,我从2010年开始回复此API调用中返回的事件:
https://www.googleapis.com/calendar/v3/calendars/myEmailHere@gmail.com/events?> maxResults = 15& key = {KEY HERE}
在您的网址中使用timeMin参数查询。默认情况下,您不按日期过滤,因此您只需获得所有结果。过滤maxResults只会限制返回的事件数量。
直到现在(2014年),我一直都是平等的。该API还显示它在1900年代更新了???。
可原因,因为事件从未更新过。它未在API中记录: https://developers.google.com/google-apps/calendar/v3/reference/events/list
另外,我认为另一件事很奇怪。 Google日历还会返回两个不同的>日期?!日期时间和日期。 (取决于全天活动)。这应该发生吗? >它使开发人员必须检查响应中发送了哪一个,然后解析依赖于此的>日期。要不然,或者我在请求中缺少参数。
是的,这应该根据文档发生。 https://developers.google.com/google-apps/calendar/v3/reference/events#resource
日期,格式为“yyyy-mm-dd”,如果这是全天活动。
时间,作为组合日期时间值(根据RFC 3339格式化)。除非在timeZone中明确指定时区,否则需要时区>偏移。
对于我自己来说,我一直在努力让所有事情都发挥作用,所以我希望这能帮到你。
至于反序列化。我使用Newtonsoft.JSON反序列化.NET中的约会。 首先创建一个根对象,因为您正在序列化事件列表。
public class RootObject
{
public RootObject() {}
//parameters you want to retrieve from the Calendar.
public List<GoogleEvent> events {get;set;}
}
public class GoogleEvent
{
public GoogleEvent(){}
[JsonProperty("calendarId")] //specify which JSON parameter needs to be mapped
public string Id {get;set;}
//all parameters you need
}
然后使用NewtonSoft反序列化器获取RootObject,该对象包含您检索到的Json中的所有事件。
NewtonSoft.Json.JsonConvert.DeserializeObject<RootObject>(JSONSTRING);