为什么Microsoft Graph API发生504网关错误?

时间:2019-07-02 06:52:55

标签: office365 microsoft-graph office365api

当我尝试在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

1 个答案:

答案 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属性中下一页数据的引用以及每个响应,直到读取了结果的所有页为止。