对Invoke-RestMethod的powershell限制?

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

我有这个代码:

$url = "https://outlook.office365.com/api/v1.0/me/messages" 
$date = Get-Date -Format "yyyy-MM-dd"

$messageQuery = "" + $url + "?`$select=Id&`$filter=HasAttachments eq true and DateTimeReceived ge " + $date
$messages = Invoke-RestMethod $messageQuery -Credential $cred 

foreach ($message in $messages.value) 
{

我尝试从11个不同的电子邮件中下载11个附件...但我只得到10个...... Invoke-RestMethod中有限制吗?是我能找到的唯一原因,因为它最多可以完成10个附件......

powershell
2个回答
2
投票

来自https://outlook.office365.com/api/v1.0/me/messages的回复被分页。

每页的默认项目数为10。

您可以申请的最高金额是50。

https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#page-results

对于"@odata.nextLink"进行分页以检查响应体时,最重要的部分是,例如

"@odata.nextLink": "https://outlook.office365.com/api/v1.0/me/messages/?%24top=10&%24skip=10"

如果有的话;点击链接到下一页的结果!


1
投票

Top参数添加到QueryString(如果没有其他参数):

$url = "https://outlook.office365.com/api/v1.0/me/messages?&top=999" 

要么:

$messageQuery = "" + $url + "?`$select=Id&`$filter=HasAttachments eq true and DateTimeReceived ge " + $date + '&top=999'
© www.soinside.com 2019 - 2024. All rights reserved.