如何使用图 API 从 OneDrive 获取文件共享人员详细信息

How to get the file shared persons details from OneDrive using graph API

我正在尝试阅读权限详细信息以及文件在 OneDrive 中共享的人员。 在检查权限时,我只得到管理访问人员的详细信息,如 "GrantedTo:" 其余的显示如下。

{
  "id": "89sd809e-a6fe-47cf-a563-d21fgac9fa3",
  "roles": [
    "read"
  ],
  "link": {
    "scope": "users",
    "type": "view",
    "webUrl": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
},

我怎样才能得到这些人的详细信息?为什么 API returns grantedTo 仅适用于受管访问人员?

我试过的代码:

var permissionss = await graphClient.Me.Drive.Items["itemID"].Permissions
                        .Request(requestOptions)
                        .WithUserAccount(ClaimsPrincipal.Current.ToGraphUserAccount())
                        .GetAsync();

请帮我找到解决办法。

提前致谢

只有用户的明确权限才能列出人员详细信息。

什么是"explicit permission"?您可以像这样授予此类权限:

像这样授予访问权限后,人员详细信息将通过 /permissions 端点显示。

如果您使用其他方式共享此文件,如下所示:

其实只是生成一个分享link。没有与此文件共享的特定受众。有权访问此文件的人将能够通过此共享访问它 link。

所以只能在回复中得到一个分享link"webUrl": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

这是此 Graph 端点的设计使然。