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
https://www.googleapis.com/auth/calendar.acls

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

请求正文

在请求正文中,提供具有以下属性的 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 对实际数据调用此方法,然后查看响应。