Microsoft Graph API - @odata.nextLink 400 错误请求 - 截断 - PowerShell

问题描述 投票:0回答:1

我正在制作一个快速脚本来从我的 B2C 实例收集用户。第一页工作正常,但之后就失败了。在我看来,

$skipToken
似乎被截断了。

代码:

$getUsersUrl = "https://graph.microsoft.com/v1.0/users?`$select=displayName,mail,id,identities&`$filter=identities/any(i:i/issuer eq 'test.com')"

$users = @()
do {
    $response = Invoke-RestMethod -Uri $getUsersUrl -Headers @{Authorization = "Bearer $accessToken"}

    $users += $response.value

    $getUsersUrl = $response.'@odata.nextLink'

} while ($getUsersUrl -ne $null)

第一个循环后我收到错误:

Invoke-RestMethod : The remote server returned an error: (400) Bad Request.

如果我在第一个循环后输出

$getUsersUrl
,它看起来像
https://graph.microsoft.com/v1.0/users?$select=displayName%2cmail%2cid%2cidentities&$filter=identities%2fany(i%3ai%2fissuer+eq+%27test.com%27)&$skiptoken=AQABAAEAAAAAAAAAAAAAAAAAAAAAAAA

我相信

$skipToken
正在被截断。

我在网上查过类似的问题,但没有找到解决方案。我也尝试过手动分页,但是Graph API不支持这一点。我在网上找到的最接近的方法是在请求正文中包含跳过令牌,但我不确定这对于 GET 请求是否有意义。

如何修复这个循环?

powershell microsoft-graph-api
1个回答
0
投票

你解决过这个问题吗?我也有同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.