是否可以在 google 日历中修补被邀请者的响应状态?

Is it possible to patch the responsestatus of an invitee in google calendar?

我正在使用 google 日历 api,我想知道是否可以 patch/update 受邀者的回复状态。我能够访问用户的 google 日历并插入、删除和更新他们的 google 日历。但我不知道如何更改用户的响应状态。

这是我的 patchdate 函数,我试图在其中修补事件。

   function patchDate(calendarid, dateFormat) {
        gapi.client.load('calendar', 'v3', function() {                 // load the calendar api (version 3)
            var request = gapi.client.calendar.events.patch({
                'calendarId':       'primary',  // calendar ID
                "eventId": calendarid,      // pass event id
                "sendNotifications": true,
                "resource":         dateFormat      // pass event details with api call
            });

            // handle the response from our api call
            request.execute(function(resp) {
                if(resp.error || resp == false) {
                    console.log("failed to update")
                } else {
                    console.log("successfully updated")
                }
                console.log(resp);
            });
        });
    }

这就是我调用函数的方式。我正在传递我想要修补的用户电子邮件。 google 日历事件中有多个电子邮件地址,但我只想更改其中一个。在这种情况下,这将是 example@.com

var dateFormat = {
    "email": 'example@.com',
    "responseStatus": 'accepted'
};
patchDate(tableData[6], dateFormat)

当我尝试修补事件时收到 200 ok 响应,但响应状态没有改变。

如果您查看 event resource 的文档,似乎 responseStatus 是可写的。

你的代码对我来说看起来不错,但如果它不起作用,那么我建议你向 issue forum

提交问题

你的 dateFormat 对象应该包含在你丢失的 "attendees":[] 对象中,因此你的补丁没有被应用。 "resource" 应如下所示:

"resource": {
        "attendees": [
          {
            "responseStatus": "tentative",
            "email": "example@.com"
          }
        ]
      }

您可以将 dateFormat 更改为

var newDateFormat = {"attendees":[dateFormat]}

我是用这里试试这个:https://developers.google.com/calendar/v3/reference/events/patch#try-it