确定对 Google 日历 API 中事件的私人更改
Determining private changes to an event in the Google Calendar API
在 Google 日历中,未经 "modify event" 许可的与会者可以对他们的活动副本进行私下更改。这些更改仅反映在他们的日历中。
在下面的示例中,创作者邀请我参加活动,我将开始时间更改为 45 分钟后:
这反映在 Google 日历 API 响应中。
创建者的事件响应:
{
"kind": "calendar#event",
"etag": "\"123\"",
"id": "abc",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=abc",
"created": "2020-06-14T11:49:54.000Z",
"updated": "2020-06-14T12:43:41.896Z",
"summary": "Non Creator changes start_time and saves",
"creator": {
"email": "david@example.com",
"self": true
},
"organizer": {
"email": "david@example.com",
"self": true
},
"start": {
"dateTime": "2020-06-14T11:00:00+01:00"
},
"end": {
"dateTime": "2020-06-14T12:00:00+01:00"
},
"iCalUID": "abc123@google.com",
"sequence": 0,
"attendees": [
{
"email": "david@example.com",
"organizer": true,
"self": true,
"responseStatus": "accepted"
},
{
"email": "ryan@example.com",
"responseStatus": "accepted"
}
],
"hangoutLink": "https://meet.google.com/abc",
"conferenceData": {
...
},
"reminders": {
"useDefault": true
}
}
与会者的事件响应:
{
"kind": "calendar#event",
"etag": "\"123\"",
"id": "abc",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=abc",
"created": "2020-06-14T11:49:54.000Z",
"updated": "2020-06-15T12:19:25.966Z",
"summary": "Non Creator changes start_time and saves",
"creator": {
"email": "david@example.com"
},
"organizer": {
"email": "david@example.com"
},
"start": {
"dateTime": "2020-06-14T11:45:00+01:00"
},
"end": {
"dateTime": "2020-06-14T12:30:00+01:00"
},
"iCalUID": "abc123@google.com",
"sequence": 0,
"attendees": [
{
"email": "david@example.com",
"organizer": true,
"responseStatus": "accepted"
},
{
"email": "ryan@example.com",
"self": true,
"responseStatus": "accepted"
}
],
"hangoutLink": "https://meet.google.com/abc",
"conferenceData": {
...
},
"reminders": {
"useDefault": true
}
}
现在出现的问题是根据与会者的请求确定活动的规范版本。在上面的响应中,没有标志表明它包含私人更改。
是否有这种方法可以确定对 Google 日历 API 中事件的私人更改?
遗憾的是目前还没有
但是 Google 的 Public 问题跟踪器上有一个 feature request。
受此问题影响的用户应该"star"它以提高知名度。向 Google 表明这是用户需要的功能很重要。
在 Google 日历中,未经 "modify event" 许可的与会者可以对他们的活动副本进行私下更改。这些更改仅反映在他们的日历中。
在下面的示例中,创作者邀请我参加活动,我将开始时间更改为 45 分钟后:
这反映在 Google 日历 API 响应中。
创建者的事件响应:
{
"kind": "calendar#event",
"etag": "\"123\"",
"id": "abc",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=abc",
"created": "2020-06-14T11:49:54.000Z",
"updated": "2020-06-14T12:43:41.896Z",
"summary": "Non Creator changes start_time and saves",
"creator": {
"email": "david@example.com",
"self": true
},
"organizer": {
"email": "david@example.com",
"self": true
},
"start": {
"dateTime": "2020-06-14T11:00:00+01:00"
},
"end": {
"dateTime": "2020-06-14T12:00:00+01:00"
},
"iCalUID": "abc123@google.com",
"sequence": 0,
"attendees": [
{
"email": "david@example.com",
"organizer": true,
"self": true,
"responseStatus": "accepted"
},
{
"email": "ryan@example.com",
"responseStatus": "accepted"
}
],
"hangoutLink": "https://meet.google.com/abc",
"conferenceData": {
...
},
"reminders": {
"useDefault": true
}
}
与会者的事件响应:
{
"kind": "calendar#event",
"etag": "\"123\"",
"id": "abc",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=abc",
"created": "2020-06-14T11:49:54.000Z",
"updated": "2020-06-15T12:19:25.966Z",
"summary": "Non Creator changes start_time and saves",
"creator": {
"email": "david@example.com"
},
"organizer": {
"email": "david@example.com"
},
"start": {
"dateTime": "2020-06-14T11:45:00+01:00"
},
"end": {
"dateTime": "2020-06-14T12:30:00+01:00"
},
"iCalUID": "abc123@google.com",
"sequence": 0,
"attendees": [
{
"email": "david@example.com",
"organizer": true,
"responseStatus": "accepted"
},
{
"email": "ryan@example.com",
"self": true,
"responseStatus": "accepted"
}
],
"hangoutLink": "https://meet.google.com/abc",
"conferenceData": {
...
},
"reminders": {
"useDefault": true
}
}
现在出现的问题是根据与会者的请求确定活动的规范版本。在上面的响应中,没有标志表明它包含私人更改。
是否有这种方法可以确定对 Google 日历 API 中事件的私人更改?
遗憾的是目前还没有
但是 Google 的 Public 问题跟踪器上有一个 feature request。
受此问题影响的用户应该"star"它以提高知名度。向 Google 表明这是用户需要的功能很重要。