Graph REST API访问DriveItem的ListItem及fields属性报错问题问询
问题原因及解决方法
你遇到的报错由多个可排查的明确原因导致,可按以下顺序核对修正:
1. 驱动器类型不支持对应属性
listItem和其下属的fields属性是SharePoint站点文档库类型的驱动器独有的属性,如果你当前请求的driveId对应以下两类驱动器,天然不存在这两个属性,会直接返回找不到属性的报错:
- 个人OneDrive驱动器(
driveType为personal) - OneDrive for Business个人存储库(
driveType为business)
只有类型为documentLibrary的SharePoint站点关联文档库驱动器,才支持扩展listItem属性。你之前在独立SharePoint站点调用正常,就是因为当时访问的是站点下的documentLibrary类型驱动器,和当前访问的驱动器类型不一致。
2. 属性名大小写错误
Microsoft Graph API的OData查询参数区分大小写,你请求中写的expand=listitem为全小写格式,正确的属性名是驼峰格式的listItem,拼写错误也会触发属性不存在的报错。
3. 扩展逻辑错误
你尝试直接扩展fields的操作不符合属性层级要求:fields是listItem的子属性,不能直接在driveItem层级扩展,正确的扩展写法应该是先扩展listItem,再指定读取fields,示例如下:
https://graph.microsoft.com/v1.0/drives/{{driveid}}/items/{{folderid}}/children?expand=listItem($select=fields)
如果确认当前驱动器是SharePoint站点文档库,修改属性名拼写为正确的listItem后即可正常返回结果。如果需要获取单个条目的字段,也可以拿到子项ID后单独请求:
https://graph.microsoft.com/v1.0/drives/{{driveid}}/items/{{itemid}}?expand=listItem($select=fields)
内容的提问来源于stack exchange,提问作者OneSpikedDrink
相关产品推荐
相关产品推荐

