Graph API:如何获取 Sharepoint webhook 资源数据 Id?

问题描述 投票:0回答:1

我目前正在使用 MS Graph API 为 SharePoint Online 驱动器开发 Webhook 通知。订阅已设置如下。

POST https://graph.microsoft.com/v1.0/subscriptions

{
    "changeType": "updated",
    "notificationUrl": "https://a123bluhbluh.ngrok-free.app/api/WebHook",
    "resource": "/drive/root",
    "expirationDateTime": "2024-07-01T00:00:00Z",
    "clientState": "c9a46c1f-9d7d-4e2b-80d3-4b18a0d0d4ae"
}

每当我通过添加/删除文件对驱动器进行任何更改时,我都会收到通知,但资源数据为空(我只得到 OdatType)。

{"value":[
   {"subscriptionId":"XXX",
      "clientState":"c9a46c1f-9d7d-4e2b-80d3-4b18a0d0d4ae",
      "tenantId":"XXX",
      "resource":"drives/root",
      "resourceData":{
          "@odata.type":"#Microsoft.Graph.DriveItem",
          "Id" : null,
          "ODataEtag" : null,
          "ODataId" : null
       },
      "changeType":"updated",
      "subscriptionExpirationDateTime":"2024-07-01T00:00:00Z"
    }
  ]
}

我还尝试将

"includeResourceData": true
添加到我的订阅中,但失败了(似乎 includeResourceData 对共享点无效)。

我确实需要文件(项目)ID 来实现其他功能。大家请帮帮我!!

sharepoint microsoft-graph-api webhooks
1个回答
0
投票

并非所有资源都会在通知本身内返回

resourceData
driveItem
就是其中之一。

要查找有关更新项目的详细信息,您必须使用增量查询

假设您订阅了

/me/drive/root
并且拥有
/me/drive/root
的最新增量链接。

收到有关更改的通知后,您将使用来自 Delta 链接的查询,如下所示

https://graph.microsoft.com/v1.0/me/drive/root/delta?token={token}

响应将包含有关更新的驱动器项目的详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.