Power Automate调用Graph API获取Planner任务仅返回400条的求助
解决Power Automate中调用Graph API拉取Planner全量任务的分页问题
因为Microsoft Graph API默认会对返回结果做分页处理,你只拿到400条是单次请求的返回上限,而Send an HTTP request动作没有内置自动分页功能,需要手动实现循环拉取,具体步骤如下:
初始化变量
- 创建名为
allTasks的数组变量,用来存储所有拉取到的任务 - 创建名为
nextLink的字符串变量,初始值设为你的Graph请求URI:https://graph.microsoft.com/v1.0/planner/plans/{plan id}/tasks?$expand=details
- 创建名为
添加循环拉取逻辑
- 添加
Do until控制动作,设置循环终止条件为empty(variables('nextLink'))(当没有下一页链接时停止循环) - 在循环内部添加
Send an HTTP request to Microsoft Graph动作:- 方法选择
GET - URI填写
variables('nextLink')
- 方法选择
- 更新
allTasks变量,将当前请求返回的任务列表追加进去,使用表达式:union(variables('allTasks'), body('Send_an_HTTP_request_to_Microsoft_Graph')?['value']) - 更新
nextLink变量,赋值为当前请求返回的下一页链接,使用表达式:
如果当前是最后一页,这个字段会不存在,变量会自动变为空值,触发循环终止body('Send_an_HTTP_request_to_Microsoft_Graph')?['@odata.nextLink']
- 添加
注意事项
- Power Automate默认循环最大次数为60次,按你900条任务的量,每次请求返回400条的话,3次循环就足够,若有特殊情况可在循环设置中调整最大次数
- 测试时可以临时修改URI添加
$top=50参数限制单次返回数量,验证循环逻辑是否正常 - 确保你的Power Automate连接拥有
Group.ReadWrite.All或Tasks.ReadWrite类的权限,避免因权限不足导致拉取失败
内容的提问来源于stack exchange,提问作者Luciol
相关产品推荐
相关产品推荐

