通过Graph API获取SharePoint列表项子项时遇到问题
你使用的/items/53/children端点不存在,Graph API中列表项没有直接的children资源段,以下是两种正确的实现方式:
方法1:通过文件夹属性直接获取子项
如果目标列表项是文件夹类型,可调用其folder/children端点,URL格式如下:
https://graph.microsoft.com/v1.0/sites/site1:/sites/site2:/lists/list1/items/53/folder/children
该端点会返回此文件夹下的所有子内容,包括子文件夹和列表项/文件。
方法2:用OData筛选查询子项
若需要更灵活的筛选逻辑(比如仅获取子文件夹),可直接查询列表并过滤ParentItemId字段:
https://graph.microsoft.com/v1.0/sites/site1:/sites/site2:/lists/list1/items?$filter=ParentItemId eq 53&$expand=fields
$filter=ParentItemId eq 53:筛选出父项ID为53的所有子项$expand=fields:展开列表项的字段信息,便于查看具体内容
遍历全层级文件夹与项
要递归获取所有层级的文件夹及子项,可按以下逻辑执行:
- 先获取起始文件夹(如根文件夹)的子项
- 对每个返回的子项,判断是否为文件夹(可通过检查
folder属性是否存在,或fields.FileLeafRef的类型标识) - 若为文件夹,重复调用上述方法获取其子项,直至遍历完所有层级
注意事项
- 确保应用已获取
Sites.Read.All或Sites.ReadWrite.All权限(根据操作需求选择) - 目标列表需启用文件夹结构(即开启“允许管理文件夹”设置),否则
ParentItemId字段不会生效
内容的提问来源于stack exchange,提问作者Teun Ververs
相关产品推荐
相关产品推荐

