Outlook REST API - getFolders不返回所有文件夹

时间:2016-02-14 22:26:45

标签: node.js api outlook office365 outlook-restapi

我刚刚开始使用Outlook REST API。我的基线是使用node-outlook的教程。

第一项业务是检索我的邮件帐户中的所有文件夹。

所以我发出这个REST请求:

GET https://outlook.office.com/api/v2.0/Me/MailFolders

它不会返回我的所有文件夹,而只返回“众所周知”的文件夹:

Clutter
Deleted Items
Drafts
Inbox
Junk Email
Outbox
Sent Items
Trash

我错过了一个查询参数或者说“不,真的,所有这些都请”的内容吗?

更新

我尝试了一个不同的电子邮件帐户,而且我也没有得到所有的实际文件夹,但是我得到了一个不同的子集(其中一些是众所周知的,另一些则不是)。

我正在实现分页协议(使用@nextLink参数),所以这不是页面大小的问题。我在一个帐户上获得了这8个文件夹,在另一个帐户上获得了18个文件夹。

因此必须有一些东西决定将返回哪些文件夹。

更新2

我改为使用“beta”API进行文件夹同步。在这种情况下,我还在列表中获得一个未命名的文件夹,该文件夹是其他文件夹的父文件夹。它附带一个准确的ChildFolderCount。但是,当我对该文件夹ID执行子文件夹请求时,我得到相同的列表。

更新3

这是当我尝试读取一个非零ChildFolderCount返回的文件夹的子文件夹时我正在使用的请求URL。

GET https://outlook.office.com/api/beta/Me/MailFolders/AAMkADRmMzFmNjZmLWU3MjctNGZiNi1iZTg4LTRmNGQwYTVhMDgxYgAuAAAAAAB8IxaZ5KGbQom4EPywGCSdAQDVy0eYwAzLS63k5pohzykCAAAAAAEJAAA=/childfolders

1 个答案:

答案 0 :(得分:0)

以下是用于定义此API返回的文件夹以及不包含的文件夹的内容:

  • 如果我直接在outlook webmail上在office365中创建一个文件夹,它会显示在此查询中。

  • 如果我在Mac Mail中创建一个文件夹,则不会。

Mac Mail使用EWS访问该服务,因此我希望它创建的文件夹与任何其他文件夹一样。

因此,在Mac Mail上创建的文件夹会阻止它们被此API返回。

在Mac Mail DO中创建的文件夹显示在网络邮件中,反之亦然。

在iPhone上创建的文件夹显示,所以在我的有限测试中,看起来Mac Mail可能是唯一遇到此问题的应用程序。我遇到的问题是我的大多数文件夹都是在Mac Mail中创建的,我没有简单的方法来重建它们。

我认为这只是API中的一个BUG。无论如何,这回答了我原来的问题,应该帮助那些尝试使用新API的人。

如果我找到解决方法,我会在这里发布。