我正在开发一个与Google日历相关联的网站。该网站使用Google的JavaScript API检索公共日历的事件并在网站上呈现它们。我现在可以创建新活动,更新活动和从我的网站中删除活动,并在Google日历中更新没有任何问题。
如果我能够编辑此日历信息是因为我的Google帐户在此特定日历上具有读/写权限。
我的问题:有没有办法使用JavaScript API将用户添加到对此日历具有写入权限的帐户列表中?显然我不想手动添加每个用户的电子邮件日历设置页面上的帐户。
我该怎么办?我是否需要制作一个ACL规则插入(没有太多关于JavaScript的文档)或类似的东西?
答案 0 :(得分:1)
使用Acl: insert,您可以添加具有“编写者”或“所有者”权限的用户,该权限授予用户对日历的读写权限。
分配给范围的角色。可能的值有:
- “none” - 不提供访问权限。
- “freeBusyReader” - 提供对忙/闲信息的读访问权限。 - “阅读器” - 提供对日历的读取权限。私人活动将 对具有读者访问权限的用户显示,但会隐藏事件详细信息。
- “writer” - 提供对日历的读写访问权限。具有编写者访问权限的用户将看到私有事件,事件详细信息将显示 是可见的。
- “owner” - 提供日历的所有权。此角色具有writer角色的所有权限以及附加查看功能 并操纵ACL。
在同一页面上使用API Explorer,我能够成功发出此请求:
POST https://www.googleapis.com/calendar/v3/calendars/12345@group.calendar.google.com/acl?key={YOUR_API_KEY}
{
"role": "writer",
"scope": {
"type": "user",
"value": "user@example.com"
}
}
您可以将其与Google API Javascript客户端一起使用,如下所示:
var calendarid = "12345@group.calendar.google.com";
var req = {
"calendarId": calendarid,
"resource": {
"role": "writer",
"scope": {
"type": "user",
"value": "user@example.com"
}
}
}
var request = gapi.client.calendar.acl.insert(req);
request.execute(function(resp) {
console.log(resp);
});