我正在尝试获取O365 Outlook帐户中特定文件夹中所有子文件夹的列表。到目前为止,我有以下脚本,我明确输入父文件夹ID并在子文件夹上运行查询。它正在工作,但只有在我希望看到的大约80个文件夹时才返回前10个结果。
任何关于退回所有儿童用品的建议都将不胜感激!感谢。
<div class="widget_stripe">
答案 0 :(得分:1)
默认情况下,消息或 ChildFolders 属性,集合或 CalendarView 上的GET请求会返回10个条目(最多50个) 。您可以使用 $ top 查询参数来设置最大数量,从而更改此行为。
这是一个通过使用'@ odata.nextLink'从集合中获取所有数据的示例:
$accessToken=''
$apiURL='https://outlook.office.com/api/v1.0/me/folders?$select=displayname&$top=2'
do{
$query=invoke-restmethod -Uri $apiURL -Headers @{Authorization=("bearer {0}" -f $accessToken)}
$values =$query| ForEach-Object{$_.Value}
$nextLink= $query | Select-Object -Property '@odata.nextlink'
$folders = $values | Select-Object -Property DisplayName
$results = foreach($folder in $folders){
$DisplayName = $folder.DisplayName
Write-Host "CLIENT: $DisplayName"
}
if($nextLink.'@odata.nextLink'){
$apiURL=$nextLink.'@odata.nextLink'.ToString()
}
}while($nextLink.'@odata.nextLink')
如果您使用'nextlink'跟踪请求,您会发现下一个链接的模式使用'skip'和'top'来从集合中获取页面。这是一个供您参考的图: