我们有一项服务,可以使用Office365 REST API为用户提取电子邮件。当用户对我们的服务进行此调用时:
因此,我们的调用如下所示:
GET https://outlook.office365.com/api/v1.0/me/folders/Inbox/messages/?$expand=Attachments($Select=Id,Name,ContentType,Size)
GET https://outlook.office365.com/api/v1.0/me/messages/{message_id}/attachments
API。
GET https://outlook.office365.com/api/v1.0/me/messages/message_id_1/attachments
GET https://outlook.office365.com/api/v1.0/me/messages/message_id_2/attachments
我们遇到的问题是,对于某些用户/邮件,获取附件的调用会返回以下错误:
{"error":{"code":"ErrorInvalidAttachmentId","message":"The specified attachment Id is invalid."}}
这个失败似乎很奇怪,因为我们没有指定个别attachmentIds。 messageId也必须正确,因为它来自先前在步骤1中获取的消息列表。我们调用REST API的方式是否存在问题?
据我所知,在获取邮件的调用之后,附件可能可用,但在获取附件的调用期间不再可用。但是,对于某些用户/消息,我们已经非常一致地看到了这些失败。
我很感激任何帮助我们解除这种情况的信息。谢谢!
编辑:
以下是此类失败的响应标头:
Transfer-Encoding: chunked
request-id: eb45663c-e081-4f68-aa99-d4a81fd3ef46
X-CalculatedFETarget: BN6PR07CU002.internal.outlook.com
X-BackEndHttpStatus: 400,400
X-FEProxyInfo: BN6PR07CA0033.NAMPRD07.PROD.OUTLOOK.COM
X-CalculatedBETarget: SN2PR03MB2349.namprd03.prod.outlook.com
OData-Version: 4.0
X-DiagInfo: SN2PR03MB2349
X-BEServer: SN2PR03MB2349
X-FEServer: BN6PR07CA0033,BN3PR16CA0037
Cache-Control: private
Date: Fri, 11 Nov 2016 18:45:06 GMT
Set-Cookie: exchangecookie=33513ff33c354ad0b92a59b852d79b14; path=/
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET