当我尝试在PowerShell上使用Microsoft Graph API来获取组的1000个线程时,发生了504个网关错误,并且代码停止了。
但是,如果我不执行任何更改就重新执行代码,则运行良好。为什么会发生这种情况,我应该如何避免这个问题?
$apiUrl53 = "https://graph.microsoft.com/beta/groups/" + $groups.id + "/threads?top=1000"
$Data = Invoke-WebRequest -Headers $global:__authHeader -Uri $apiUrl53 -Method Get
错误消息:
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
答案 0 :(得分:0)
您是否有任何理由试图获得前1000名?
例如,您可以在记录100的组中进行“分页”,因此您不会在一个响应中返回如此巨大的有效负载。
关于此的精彩视频,展示了如何使用skiptoken https://docs.microsoft.com/en-us/graph/paging?context=graph%2Fapi%2F1.0&view=graph-rest-1.0
例如,以下URL请求组织中页面大小为5的所有用户,并使用$ top查询参数指定>
https://graph.microsoft.com/v1.0/users?$top=100
如果结果包含五个以上的用户,Microsoft Graph将返回一个类似于以下内容的@odata:nextLink属性以及用户的第一页。
"@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$top=100&$skiptoken=X%274453707 ... 6633B900000000000000000000%27"
您可以通过将@odata:nextLink属性的URL值发送到Microsoft Graph来检索结果的下一页。
https://graph.microsoft.com/v1.0/users?$top=100&$skiptoken=X%274453707 ... 6633B900000000000000000000%27
Microsoft Graph将继续返回@odata:nextLink属性中下一页数据的引用以及每个响应,直到读取了结果的所有页为止。