【问题标题】:"webUrl" coming as null when sending an file invitation - Graph API (Send a sharing invitation)发送文件邀请时“webUrl”为空 - Graph API(发送共享邀请)
【发布时间】:2020-09-15 15:16:31
【问题描述】:

我正在使用来自 MS GRAPH 的邀请 API - Invite LINK

发送共享邀请 - 外部用户

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

上述请求的响应返回200 OK响应码并返回permission对象,但链接对象下的共享链接(webUrl)大多数时候返回“null”,导致无法共享链接共享给外部用户编辑文档。

请求正文:



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

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

观察: 它适用于 gmail 和 Outlook 帐户。 对于企业帐户,它无法将 url 接收为 null。

样品:

  • 如果我是第一次邀请,我会收到以下回复,

例外响应示例:



{
    "@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*****/"
            }
        }
    ]
}

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

在没有 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": "@@@@@@@"
                }
            }
        }
    ]
}

【问题讨论】:

    标签: azure azure-active-directory microsoft-graph-api microsoft-graph-files


    【解决方案1】:

    我通过使用上传 API LINK 解决了我的问题 ,一旦上传成功,API 将返回response,其中将包含“webUrl”链接,可用于第二次分享。

    (在使用 MS GRAPH API 进行更多探索后发现,如果我们 多次共享同一个文件不会提供任何新链接 只能使用旧链接)

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

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

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

    由于文件已经第一次与用户共享,因此可以使用我们从 UPLOAD API 获得的作为响应的 url,这个 url 可以被已经共享的用户访问。

    所以我改变了我的逻辑,如果用户第一次执行操作然后我上传文件并与他共享,如果用户想再次执行相同的操作而不是使用上传响应 url 再次共享文件它可以工作对我来说。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      相关资源
      最近更新 更多