我使用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
始终缺失。有没有人有解决方案?
答案 0 :(得分:1)
Attachments
是导航属性,因此您需要通过附加$expand
参数来请求“展开”:
https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages?
$select=Subject,Attachments&$filter=HasAttachments eq true&$expand=Attachments