问题描述
我正在使用谷歌日历 API,我想知道是否可以修补/更新受邀者的响应状态。我能够访问用户的谷歌日历并插入、删除和更新他们的谷歌日历。但我不知道如何更改用户的响应状态。
这是我的 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);
});
});
}
这就是我调用函数的方式。我正在传递我想要修补的用户电子邮件。谷歌日历活动中有多个电子邮件地址,但我只想更改其中一个。在这种情况下,这将是 [email protected]
var dateFormat = {
"email": '[email protected]',"responseStatus": 'accepted'
};
patchDate(tableData[6],dateFormat)
当我尝试修补事件时收到 200 ok 响应,但响应状态没有改变。
解决方法
如果您查看 event resource 的文档,则 responseStatus 似乎是可写的。
您的代码对我来说看起来不错,但如果它不起作用,那么我建议您向 issue forum
提交问题 ,您的 dateFormat
对象应该包含在您缺少的 "attendees":[]
对象中,因此您的补丁没有被应用。 "resource"
应如下所示:
"resource": {
"attendees": [
{
"responseStatus": "tentative","email": "[email protected]"
}
]
}
您可以将 dateFormat
更改为
var newDateFormat = {"attendees":[dateFormat]}
我用这里试试这个:https://developers.google.com/calendar/v3/reference/events/patch#try-it