发送共享邀请
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
发送 DriveItem 的共享邀请。共享邀请为收件人提供权限,也可以选择向收件人发送电子邮件以通知他们项目已共享。
Permissions
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 | 权限(从最低特权到最高特权) |
|---|---|
| 委派(工作或学校帐户) | Files.ReadWrite、Files.ReadWrite.All、Sites.ReadWrite.All |
| 委派(个人 Microsoft 帐户) | Files.ReadWrite、Files.ReadWrite.All |
| 应用程序 | Files.ReadWrite.All、Sites.ReadWrite.All |
HTTP 请求
POST /drives/{drive-id}/items/{item-id}/invite
POST /groups/{group-id}/drive/items/{item-id}/invite
POST /me/drive/items/{item-id}/invite
POST /sites/{siteId}/drive/items/{itemId}/invite
POST /users/{userId}/drive/items/{itemId}/invite
请求正文
在请求正文中,提供具有以下参数的 JSON 对象。
{
"requireSignIn": false,
"sendInvitation": false,
"roles": [ "read | write"],
"recipients": [
{ "@odata.type": "microsoft.graph.driveRecipient" },
{ "@odata.type": "microsoft.graph.driveRecipient" }
],
"message": "string"
}
| 参数 | 类型 | 说明 |
|---|---|---|
| recipients | Collection(DriveRecipient) | 将获得访问权限和共享邀请的收件人的集合。 |
| message | String | 共享邀请中包含的纯文本格式的邮件。最大长度为 2000 个字符。 |
| requireSignIn | Boolean | 指定邀请的收件人要查看共享项目的登录位置。 |
| sendInvitation | Boolean | 指定是否生成电子邮件或帖子 (false),或是否仅创建权限 (true)。 |
| 角色 | 集合(字符串) | 指定授予共享邀请收件人的角色。 |
| expirationDateTime | DateTimeOffset | 指定权限过期的 DateTime。 可用于OneDrive for Business、SharePoint和高级个人OneDrive帐户。 |
| 密码 | String | 创建者邀请上设置的密码。 可选和OneDrive个人 |
示例
本示例向电子邮件地址为“ryan@contoso.org”的用户发送共享邀请,其中包含关于协作文件的讯息。 此邀请授予 Ryan 对该文件的读写访问权限。
HTTP 请求
如果成功,此方法在响应正文中返回 200 OK 响应代码和 permission 集合对象。
POST /me/drive/items/{item-id}/invite
Content-type: application/json
{
"recipients": [
{
"email": "robin@contoso.org"
}
],
"message": "Here's the file that we're collaborating on.",
"requireSignIn": true,
"sendInvitation": true,
"roles": [ "write" ],
"password": "password123",
"expirationDateTime": "2018-07-15T14:00:00.000Z"
}
响应
下面是一个响应示例。
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"@deprecated.GrantedTo": "GrantedTo has been deprecated. Refer to GrantedToV2",
"grantedTo": {
"user": {
"displayName": "Robin Danielsen",
"id": "42F177F1-22C0-4BE3-900D-4507125C5C20"
}
},
"grantedToV2": {
"user": {
"id": "42F177F1-22C0-4BE3-900D-4507125C5C20",
"displayName": "Robin Danielsen"
},
"siteUser": {
"id": "1",
"displayName": "Robin Danielsen",
"loginName": "Robin Danielsen"
}
},
"hasPassword": true,
"id": "CCFC7CA3-7A19-4D57-8CEF-149DB9DDFA62",
"invitation": {
"email": "robin@contoso.com",
"signInRequired": true
},
"roles": [ "write" ],
"expirationDateTime": "2018-07-15T14:00:00.000Z"
}
]
}
部分成功响应
邀请多个收件人时,某些收件人的通知可能会成功,而其他收件人可能会失败。
在这种情况下,该服务返回 HTTP 状态代码为 207 的部分成功响应。
返回部分成功后,每个失败收件人的响应将包含一个对象,其中包含有关错误 error 及其修复方法的信息。
下面是部分响应的示例。
HTTP/1.1 207 Multi-Status
Content-type: application/json
{
"value": [
{
"grantedTo": {
"user": {
"displayName": "Helga Hammeren",
"id": "5D8CA5D0-FFF8-4A97-B0A6-8F5AEA339681"
}
},
"id": "1EFG7CA3-7A19-4D57-8CEF-149DB9DDFA62",
"invitation": {
"email": "helga@contoso.com",
"signInRequired": true
},
"roles": [ "write" ],
"error": {
"code":"notAllowed",
"message":"Account verification needed to unblock sending emails.",
"localizedMessage": "Kontobestätigung erforderlich, um das Senden von E-Mails zu entsperren.",
"fixItUrl":"http://g.live.com/8SESkydrive/VerifyAccount",
"innererror":{
"code":"accountVerificationRequired"
}
}
},
{
"grantedTo": {
"user": {
"displayName": "Robin Danielsen",
"id": "42F177F1-22C0-4BE3-900D-4507125C5C20"
}
},
"id": "CCFC7CA3-7A19-4D57-8CEF-149DB9DDFA62",
"invitation": {
"email": "robin@contoso.com",
"signInRequired": true
},
"roles": [ "write" ],
"expirationDateTime": "2018-07-15T14:00:00.000Z"
}
]
}
SendNotification 错误
下面是应用在发送通知失败时在嵌套对象中 innererror 可能会遇到的一些其他错误。 应用不需要处理它们。
| 代码 | 说明 |
|---|---|
| accountVerificationRequired | 需要帐户验证才能取消阻止发送通知。 |
| hipCheckRequired | 需要解决 HIP (主机入侵防护) 以取消阻止发送通知。 |
| exchangeInvalidUser | 未找到当前用户的邮箱。 |
| exchangeOutOfMailboxQuota | 配额不足。 |
| exchangeMaxRecipients | 超出了可以同时发送通知的最大收件人数。 |
注意: 该服务可以添加新的错误代码或随时停止返回旧的错误代码。
备注
错误响应
请阅读 错误响应 主题,了解有关如何返回错误的详细信息。
反馈
提交和查看相关反馈