Acl: update

更新访问权限控制规则。 立即试用查看示例

请求

HTTP 请求

PUT https://www.googleapis.com/calendar/v3/calendars/calendarId/acl/ruleId

参数

参数名称 说明
路径参数
calendarId string 日历标识符。要检索日历 ID,请调用 calendarList.list 方法。如果您想访问当前登录用户的主日历,请使用“primary”关键字。
ruleId string ACL 规则标识符。
可选的查询参数
sendNotifications boolean 是否发送有关日历共享更改的通知。请注意,系统不会发送有关撤消访问权限的通知。可选。默认值为 True。

授权

此请求需要获得以下范围的授权:

范围
https://www.googleapis.com/auth/calendar

如需了解详情,请参阅身份验证和授权页面。

请求正文

在请求正文中,提供具有以下属性的 Acl 资源

属性名称 说明 备注
必需属性
scope object 此 ACL 规则授予日历访问权限的范围。
scope.type string 范围的类型。可能的值包括:
  • default”- 公共范围。这是默认值。
  • user”- 将范围限定为单个用户。
  • group”- 将范围限定为某个组。
  • domain”- 将范围限定为某个域。
注意:授予“default”范围的权限(即公开权限)适用于任何用户,无论用户是否通过身份验证。
可选属性
role string 分配给范围的角色。可能的值包括:
  • none”- 不提供访问权限。
  • freeBusyReader”- 提供空闲/忙碌信息的读取权限。
  • reader”- 提供日历的读取权限。拥有读者访问权限的用户将会看到不公开活动,但活动详细信息处于隐藏状态。
  • writer”- 提供日历的读写权限。拥有写入者权限的用户会看到不公开的活动,并且活动详细信息也会显示。
  • owner”- 提供日历的所有权。此角色拥有 writer 角色的所有权限,还拥有查看和操作 ACL 的额外权限。
可写入
scope.value string 用户或群组的电子邮件地址或域名,具体取决于范围类型。类型“default”已省略。 可写入

响应

如果成功,此方法将在响应正文中返回一项 Acl 资源

示例

注意:此方法的代码示例并未列出所有受支持的编程语言(请参阅客户端库页面,查看受支持的语言列表)。

Java

使用 Java 客户端库

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.AclRule;

// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Retrieve the access rule from the API
AclRule rule = service.acl().get('primary', "ruleId").execute();

// Make a change
rule.setRole("newRole");

// Update the access rule
AclRule updatedRule = service.acl().update('primary', rule.getId(), rule).execute();
System.out.println(updatedRule.getEtag());

Python

使用 Python 客户端库

rule = service.acl().get(calendarId='primary', ruleId='ruleId').execute()
rule['role'] = 'newRole'

updated_rule = service.acl().update(calendarId='primary', ruleId=rule['id'], body=rule).execute()
print updated_rule['etag']

PHP

使用 PHP 客户端库

$rule = $service->acl->get('primary', 'ruleId');
$rule->setRole('newRole');

$updatedRule = $service->acl->update('primary', $rule->getId(), $rule);
echo $updatedRule->getEtag();

Ruby

使用 Ruby 客户端库

rule = client.get_acl('primary', 'ruleId')
rule.role = 'newRole'
result = client.update_acl('primary', rule.id, rule)
print result.etag

试试看!

使用下面的 API Explorer 对实际数据调用此方法,然后查看响应。