Outlook API 获取邮件未返回附件集合

Outlook API Get Messages not returning Attachment collection

我正在使用 Outlook Mail REST API 获取用户电子邮件集合的 JSON 对象,并在自定义 Web 界面中显示数据。我需要显示电子邮件列表,并且列表中的每封电子邮件都需要一个指示器,指示该特定电子邮件的附件数量。

我正在使用“从 Outlook Mail REST API reference #Getmessages 获取消息”路由来获取执行此操作所需的所有数据。但是,当我在 $select 中指定我想要 Attachments 时,我从未获得每封电子邮件的附件集合;它只是丢失了。

我可以通过对每封电子邮件的单独请求获取每封电子邮件的附件集合,如果我一次需要 100 封电子邮件的附件计数,这将很难看。

据此:(https://msdn.microsoft.com/office/office365/api/complex-types-for-mail-contacts-calendar#RESTAPIResourcesMessage) 我应该能够指定在我获取消息时是否需要附件集合,但它不起作用。我正在使用 Node.js 获取电子邮件集合:

var requestUrl = "https://outlook.office.com/api/v2.0/me/messages";

var queryParams = {
    '$select': 'Subject, ReceivedDateTime, From, ToRecipients, HasAttachments, Attachments, WebLink, CcRecipients, Body',
    '$orderby': 'ReceivedDateTime desc',
    '$filter' : dateString,
    '$top': 300
};

...

Returned Email Object in Collection

如果我包含或排除 $select 中的每个选项,它都可以正常工作,但 Attachments 总是丢失。有人有解决方案吗?

Attachments是一个导航属性,所以你需要通过附加一个$expand参数来请求它得到"expanded":

https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages?
  $select=Subject,Attachments&$filter=HasAttachments eq true&$expand=Attachments