You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过MS Graph API获取Drive子项的grantedToV2权限信息?

获取OneDrive子项的共享权限(grantedToV2字段)方法

当前现状

  • 已成功通过以下请求获取Drive父项的共享权限:
    GET https://graph.microsoft.com/v1.0/users/{userid}/drive/items/{itemid}/permissions
    
    返回结果包含grantedToV2字段,示例如下:
    "grantedToV2": {
        "user": {
            "@odata.type": "#microsoft.graph.sharePointIdentity",
            "displayName": "USER NAME",
            "email": "USER EMAIL",
            "id": "USER ID"
        }
    }
    
  • 已能通过以下请求获取Drive父项的子项列表:
    GET https://graph.microsoft.com/v1.0/users/{userid}/drive/items/{itemid}/children
    
  • 尝试通过GET https://graph.microsoft.com/v1.0/users/{userid}/drive/items/{itemid}/children/{childid}/permissions(带/不带permissions参数)获取子项权限失败,因为该端点不存在。

解决方案

直接调用子项自身的权限接口

OneDrive的权限接口不支持通过children路径嵌套访问,正确的做法是使用子项的id直接调用权限端点:

  1. 获取子项ID
    从GET https://graph.microsoft.com/v1.0/users/{userid}/drive/items/{itemid}/children的返回结果中,提取每个子项的id(即你的childid)。

  2. 请求子项权限
    将子项的id替换到权限接口的{itemid}位置,请求地址为:

GET https://graph.microsoft.com/v1.0/users/{userid}/drive/items/{childid}/permissions

该请求会返回子项的共享权限信息,包含所需的grantedToV2字段。

补充技巧

  • 权限继承说明:如果子项未单独设置权限,会继承父文件夹的权限,此时调用子项权限接口仍会返回继承的权限数据,同样包含grantedToV2字段。
  • 批量获取权限:若需获取多个子项的权限,可使用Graph的批量请求减少请求次数,示例批量请求体如下(发送至POST https://graph.microsoft.com/v1.0/$batch):
    {
        "requests": [
            {
                "id": "1",
                "method": "GET",
                "url": "/users/{userid}/drive/items/{childid1}/permissions"
            },
            {
                "id": "2",
                "method": "GET",
                "url": "/users/{userid}/drive/items/{childid2}/permissions"
            }
        ]
    }
    

内容的提问来源于stack exchange,提问作者PowerIsPower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 18:52:26