Microsoft 图 - Outlook 邮件 - 列出所有邮件文件夹(不仅仅是顶级文件夹)?

Ala*_*ACK 2 api outlook microsoft-graph-api

目前,据我所知,Microsoft graph 根据https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/message为 Outlook 邮件文件夹提供了 2 个主要端点

List mail folders并且List child folders- 只是为了在我的仪表板应用程序中构建文件夹层次结构,我需要进行递归 REST API 调用 - 这非常缓慢且非常糟糕。

有没有办法让微软一次返回所有文件夹?

SKU*_*123 7

是的你可以。只需使用增量查询即可获取所有文件夹。

请求示例: https://graph.microsoft.com/v1.0/users/[user_id]/mailfolders/delta?$select=displayname 您将获得所有文件夹的数组,其中子文件夹位于父文件夹项目之后在回应中。

测试:
转到: https: //developer.microsoft.com/en-us/graph/graph-explorer
GET 版本:v1.0 URL: https: //graph.microsoft.com/v1.0/me/Mailfolders/增量
运行查询

请注意,响应中还包含“Internal Screens”和“Project Falcon”文件夹,其parentFolderId 是“Inbox”的 ID。


fac*_*ris 5

使用当前 V1.0

通过扩展 childFolders 容器,您可以在每次调用时获得两个级别。

https://graph.microsoft.com/v1.0/me/mailFolders?$top=250&$expand=childFolders
Run Code Online (Sandbox Code Playgroud)

使用测试版

您可以为每个请求获取多达 250 个文件夹,您将收到一个扁平的层次结构,其中包括无限的子级别。测试版自 2015 年以来一直处于测试阶段(我能说的最好),我不能说它何时/是否会投入生产。就我而言,我使用 beta 来获取文件夹并回退到 v1.0 和递归循环。

只需稍微更改您的 GET 请求。v1.0 测试版。对我来说,现有的身份验证令牌和凭据都可以正常工作,无需任何更改。另请注意,无需使用 Beta 端点扩展 childFolders。

https://graph.microsoft.com/beta/me/mailFolders?$top=250
Run Code Online (Sandbox Code Playgroud)

示例响应...

https://graph.microsoft.com/v1.0/me/mailFolders?$top=250&$expand=childFolders
Run Code Online (Sandbox Code Playgroud)