更新共享权限
命名空间:microsoft.graph
通过修补 permission 资源更新共享权限的属性。
只有 roles 属性可以通过这种方式修改。
Permissions
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
Files.ReadWrite、Files.ReadWrite.All、Sites.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
Files.ReadWrite、Files.ReadWrite.All |
| 应用程序 |
Files.ReadWrite.All、Sites.ReadWrite.All |
HTTP 请求
PATCH /drives/{drive-id}/items/{item-id}/permissions/{perm-id}
PATCH /groups/{group-id}/drive/items/{item-id}/permissions/{perm-id}
PATCH /me/drive/items/{item-id}/permissions/{perm-id}
PATCH /sites/{site-id}/drive/items/{item-id}/permissions/{perm-id}
PATCH /users/{user-id}/drive/items/{item-id}/permissions/{perm-id}
| 名称 |
类型 |
说明 |
| if-match |
string |
如果包含此请求标头,且提供的 eTag(或 cTag)与项中的当前标记不匹配,则返回 412 Precondition Failed 响应,并且不会删除该项。 |
请求正文
在请求正文中,提供应更新的相关字段的值。
请求正文中不包括的现有属性将保留其以前的值,或根据对其他属性值的更改重新计算。
为了实现最佳性能,不得添加未变化的现有值。
可以修改这些权限类型的以下属性。
| 权限类型 |
属性 |
类型 |
说明 |
| 用户 |
角色 |
String 集合 |
权限类型的数组。 |
| 匿名共享链接 |
expirationDateTime |
DateTimeOffset |
DateTimeOffset 的 yyyy-MM-ddTHH:mm:ssZ 格式,表示权限的过期时间。 |
不受支持的权限修改包括:
响应
如果成功,此方法在响应正文中返回 200 OK 响应代码和更新的 permission 对象。
示例
下面是请求将共享权限上的角色更改为只读的示例。
PATCH /me/drive/items/{item-id}/permissions/{perm-id}
Content-type: application/json
{
"roles": [ "read" ]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var permission = new Permission
{
Roles = new List<String>()
{
"read"
}
};
await graphClient.Me.Drive.Items["{driveItem-id}"].Permissions["{permission-id}"]
.Request()
.UpdateAsync(permission);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const permission = {
roles: [ 'read' ]
};
await client.api('/me/drive/items/{item-id}/permissions/{perm-id}')
.update(permission);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/me/drive/items/{item-id}/permissions/{perm-id}"]]];
[urlRequest setHTTPMethod:@"PATCH"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphPermission *permission = [[MSGraphPermission alloc] init];
NSMutableArray *rolesList = [[NSMutableArray alloc] init];
[rolesList addObject: @"read"];
[permission setRoles:rolesList];
NSError *error;
NSData *permissionData = [permission getSerializedDataWithError:&error];
[urlRequest setHTTPBody:permissionData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
Permission permission = new Permission();
LinkedList<String> rolesList = new LinkedList<String>();
rolesList.add("read");
permission.roles = rolesList;
graphClient.me().drive().items("{item-id}").permissions("{perm-id}")
.buildRequest()
.patch(permission);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
如果成功,此方法将在响应正文中返回 Permission 资源,表示请求获取的更新后权限状态。
HTTP/1.1 200 OK
Content-type: application/json
{
"@deprecated.GrantedTo": "GrantedTo has been deprecated. Refer to GrantedToV2",
"grantedTo": {
"user": {
"displayName": "Robin Danielsen",
"id": "efee1b77-fb3b-4f65-99d6-274c11914d12"
}
},
"grantedToV2": {
"user": {
"id": "efee1b77-fb3b-4f65-99d6-274c11914d12",
"displayName": "Robin Danielsen"
},
"siteUser": {
"id": "1",
"displayName": "Robin Danielsen",
"loginName": "Robin Danielsen"
}
},
"id": "1",
"roles": [ "read" ]
}
错误响应
请阅读 错误响应 主题,了解有关如何返回错误的详细信息。