我刚刚开始使用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个文件夹。
因此必须有一些东西决定将返回哪些文件夹。
我改为使用“beta”API进行文件夹同步。在这种情况下,我还在列表中获得一个未命名的文件夹,该文件夹是其他文件夹的父文件夹。它附带一个准确的ChildFolderCount。但是,当我对该文件夹ID执行子文件夹请求时,我得到相同的列表。
这是当我尝试读取一个非零ChildFolderCount返回的文件夹的子文件夹时我正在使用的请求URL。
GET https://outlook.office.com/api/beta/Me/MailFolders/AAMkADRmMzFmNjZmLWU3MjctNGZiNi1iZTg4LTRmNGQwYTVhMDgxYgAuAAAAAAB8IxaZ5KGbQom4EPywGCSdAQDVy0eYwAzLS63k5pohzykCAAAAAAEJAAA=/childfolders
答案 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的人。
如果我找到解决方法,我会在这里发布。