使用C# Graph客户端调用MS Graph API检出SharePoint文件报错求助
问题根因
- 你代码中命名为
sharedDocsDriveId的参数实际是SharePoint列表ID,并非对应文档库的Drive ID,直接传入Drives[]索引就会触发驱动器ID格式错误的报错。 IListItemRequestBuilder本身没有提供Checkout方法,必须先获取列表项关联的DriveItem对象才能调用检出接口。
解决代码
直接对齐Graph Explorer中的请求路径编写即可,不需要额外获取Drive ID:
string mySiteId = "mySuperCoolDomainName.sharepoint.com,555b5555-5555-4555-5bb5-b555b55555b5,5555b555b-1234-123b1-83de-55b55b55555"; // 该参数为列表ID,修改变量名避免混淆 string sharedDocsListId = "12345ccc-1c9c-1c11-9e09-1cc1234bb0b4"; string listItemId = "2"; await App.GraphClient.Sites[mySiteId] .Lists[sharedDocsListId] .Items[listItemId] .DriveItem .Checkout() .Request() .PostAsync();
额外注意事项
- 确认你的应用已配置
Files.ReadWrite.All或Sites.ReadWrite.All的对应权限,权限不足也会导致操作失败。 - 仅未处于检出状态的文件可以执行检出操作,重复调用检出接口会返回错误。
内容的提问来源于stack exchange,提问作者dot
相关产品推荐
相关产品推荐

