Google Calendar JavaScript API,将用户添加到具有“写入”权限的日历中

时间:2016-05-08 21:20:38

标签: javascript google-calendar-api acl

我正在开发一个与Google日历相关联的网站。该网站使用Google的JavaScript API检索公共日历的事件并在网站上呈现它们。我现在可以创建新活动,更新活动和从我的网站中删除活动,并在Google日历中更新没有任何问题。

如果我能够编辑此日历信息是因为我的Google帐户在此特定日历上具有读/写权限。

我的问题:有没有办法使用JavaScript API将用户添加到对此日历具有写入权限的帐户列表中?显然我不想手动添加每个用户的电子邮件日历设置页面上的帐户。

我该怎么办?我是否需要制作一个ACL规则插入(没有太多关于JavaScript的文档)或类似的东西?

1 个答案:

答案 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);
});