You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph API获取SharePoint列表的全部条目?解决单次请求仅返回200条数据的问题

解决Microsoft Graph API SharePoint列表项分页问题

嘿,这个情况我太熟悉了!Microsoft Graph API 对 SharePoint 列表项的单次请求确实有默认返回限制(默认就是200条),这就是你只拿到200条数据的原因。这里给你两种实用的解决思路:

每次请求返回的响应体里,只要还有未返回的数据,就会包含一个@odata.nextLink字段,这个字段的值就是下一页数据的请求URL。你只需要循环请求这个URL,直到响应里不再出现@odata.nextLink,就说明所有数据都已经获取完毕了。

举个伪代码示例(Python):

import requests

# 替换成你的实际参数和令牌
base_url = "https://graph.microsoft.com/v1.0/sites/{site_id}/lists/{list_id}/items?expand=fields"
auth_headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
all_list_items = []

current_url = base_url
while current_url:
    response = requests.get(current_url, headers=auth_headers)
    response.raise_for_status()  # 处理请求错误
    response_data = response.json()
    
    # 将当前页的条目加入总列表
    all_list_items.extend(response_data.get("value", []))
    
    # 获取下一页的请求地址
    current_url = response_data.get("@odata.nextLink")

print(f"成功获取全部 {len(all_list_items)} 条列表项")

2. 自定义每页返回数量($top参数)

如果你想减少请求次数,可以用$top参数指定每页返回的最大条目数,SharePoint列表项接口支持的最大$top值是500。比如:

https://graph.microsoft.com/v1.0/sites/{site_id}/lists/{list_id}/items?expand=fields&$top=500

这样单次请求就能拿到最多500条数据,对于你250条的列表来说,一次请求就够了。但如果之后列表数据超过500条,还是要结合上面的@odata.nextLink循环请求。

需要注意的是,不管用哪种方式,都要确保你的访问令牌有足够的权限(至少是Sites.Read.All或者对应的站点/列表权限),不然可能会出现权限不足的问题。

内容的提问来源于stack exchange,提问作者jan-seins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 16:57:39