Acl: insert

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

请求

HTTP 请求

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

参数

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

授权

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

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

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

请求正文

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

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

// Create access rule with associated scope
AclRule rule = new AclRule();
Scope scope = new Scope();
scope.setType("scopeType").setValue("scopeValue");
rule.setScope(scope).setRole("role");

// Insert new access rule
AclRule createdRule = service.acl().insert('primary', rule).execute();
System.out.println(createdRule.getId());

Python

使用 Python 客户端库

rule = {
    'scope': {
        'type': 'scopeType',
        'value': 'scopeEmail',
    },
    'role': 'role'
}

created_rule = service.acl().insert(calendarId='primary', body=rule).execute()

print created_rule['id']

PHP

使用 PHP 客户端库

$rule = new Google_Service_Calendar_AclRule();
$scope = new Google_Service_Calendar_AclRuleScope();

$scope->setType("scopeType");
$scope->setValue("scopeValue");
$rule->setScope($scope);
$rule->setRole("role");

$createdRule = $service->acl->insert('primary', $rule);
echo $createdRule->getId();

Ruby

使用 Ruby 客户端库

rule = Google::Apis::CalendarV3::AclRule.new(
  scope: {
    type: 'scopeType',
    value: 'scopeEmail',
  },
  role: 'role'
)
result = client.insert_acl('primary', rule)
print result.id

试试看!

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