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

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

请求正文

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