添加DriveItem权限时设置retainInheritedPermissions报400错误
解决DriveItem Invite接口添加retainInheritedPermissions参数时的400错误
你遇到的问题是调用Microsoft Graph API的driveItem invite接口时,只要加入retainInheritedPermissions参数就返回400错误,移除后请求正常。核心原因是这个参数仅适用于SharePoint站点关联的Drive,不适用于个人OneDrive。
你的请求路径是https://graph.microsoft.com/v1.0/users/{user-id}/drive/items/{item-Id}/invite,属于个人OneDrive的操作接口,而retainInheritedPermissions是为SharePoint文档库设计的参数——SharePoint有复杂的权限继承体系,个人OneDrive的权限模型不支持该参数的配置逻辑,因此传入后会触发无效请求错误。
验证与解决方案
- 若操作的是个人OneDrive:直接移除
retainInheritedPermissions参数即可,个人OneDrive的文件权限默认会继承父项权限,无需额外配置。 - 若操作的是SharePoint站点的Drive:确认请求路径是否正确(应使用
/sites/{site-id}/drive/items/{item-id}/invite),同时检查参数拼写和取值是否正确(仅接受布尔值true或false)。
修正后的个人OneDrive请求示例
POST https://graph.microsoft.com/v1.0/users/{user-id}/drive/items/{item-Id}/invite Content-Type: application/json { "recipients": [ { "email": "user1" }, { "email": "user2" } ], "message": "", "requireSignIn": true, "sendInvitation": false, "roles": [ "write" ] }
内容的提问来源于stack exchange,提问作者Vinanth S Bharadwaj
相关产品推荐
相关产品推荐

