发送文件邀请时显示为 null "webUrl" - 图形 API(发送共享邀请)



我正在使用来自MS GRAPH的邀请API - 邀请链接

发送共享邀请 - 外部用户

  • POST/me/drive/items/{item-id}/invite
  • POST/sites/{
  • siteId}/drive/items/{itemId}/invite

来自上述请求的响应返回 200 OK 响应代码并返回一个权限对象,但链接对象下的共享链接 (webUrl( 大多数时候返回"null",因此无法将可共享链接共享给外部用户以编辑文档。

请求正文:


{
"recipients": [
{
"email": "abc@abc.com"
}
],
"message": "Here's the file that we're collaborating on.",
"requireSignIn": true,
"sendInvitation": false,
"roles": [ "write" ]
}

在这里,我不想通过邮件共享项目,因此使sendInvitation为假并使用从响应中收到的webURL进行协作。

观察: 它适用于Gmail和Outlook帐户。 对于企业帐户,接收 url 为空不起作用。

样品:

  • 如果我第一次邀请,我得到的回应低于,

示例例外响应:

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(permission)",
"value": [
{
"@odata.type": "#microsoft.graph.permission",
"roles": [
"write"
],
"grantedToIdentities": [
{
"user": {
"email": "#####@####.com"
}
}
],
"invitation": {
"signInRequired": true
},
"link": {
"type": "edit",
"webUrl": "https://**********encryptedURL*****/"
}
}
]
}

  • 从第二次链接对象未出现在响应中,

收到的没有 webURL 的响应示例:

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(permission)",
"value": [
{
"@odata.type": "#microsoft.graph.permission",
"id": "###############",
"roles": [
"write"
],
"grantedTo": {
"user": {
"email": "######@######.com",
"id": "#############",
"displayName": "@@@@@@@"
}
}
}
]
}

我通过使用上传 API 链接解决了我的问题 ,上传成功后,API 将返回响应,该响应将具有"webUrl"链接,可用于第二次共享。

(在使用MS GRAPH API探索更多内容后,观察到如果我们 多次共享同一文件,它不会提供任何新链接,因为 旧链接只能使用(

实际流程:上传文件 ->共享文件(每次都发生这种情况(

更改逻辑:第一次:上传文件 -> 共享文件

第二次开始:由于文件已经共享,使用上传API响应中的url

由于文件已经首次与用户共享,因此可以使用我们从上传API获得的响应的URL,已经共享的用户可以访问此URL。

因此,如果用户第一次执行该操作,我更改了我的逻辑,然后我正在上传文件并与他共享,如果用户想再次执行相同的操作而不是使用上传响应 url 再次共享文件,它对我有用。

发布此解决方案,因为它可能会帮助某人

最新更新