GoogleCalendarJavaScriptapi,将用户添加到带有“;写“;通道

Google Calendar JavaScript api, add user to a calendar with "write" access

本文关键字:通道 用户 添加 GoogleCalendarJavaScriptapi      更新时间:2023-09-26

我正在开发一个与谷歌日历相连的网站。该网站使用Google的JavaScript API来检索公共日历的事件,并将其呈现在网站上。我现在可以创建新的事件,更新事件,从我的网站上删除事件,并在谷歌日历中毫无问题地更新。

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

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

我能做什么?我需要做一个ACL规则插入(没有太多关于JavaScript的文档)或类似的东西吗?

使用Acl:insert,您可以添加具有"写入者"或"所有者"权限的用户,这些权限授予用户对日历的读写权限。

分配给作用域的角色。可能的值有:

  • "none"-不提供访问权限
  • "freeBusyReader"-提供对忙/闲信息的读取访问
  • "reader"-提供对日历的读取访问权限。私人活动显示给具有读卡器访问权限的用户,但事件详细信息将被隐藏
  • "写入程序"-提供对日历的读写访问权限。私人事件将显示给具有写入程序访问权限的用户,事件详细信息将可见
  • "所有者"-提供日历的所有权。此角色具有写入者角色的所有权限,并具有查看并操纵ACL

在同一个页面上使用API资源管理器,我能够成功地提出这个请求:

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