来自Office365 REST API的意外响应

时间:2016-11-11 00:41:03

标签: office365 office365api office365-restapi

我们有一项服务,可以使用Office365 REST API为用户提取电子邮件。当用户对我们的服务进行此调用时:

  1. 我们首先打电话来获取包含附件元数据的消息,但不是实际的附件内容/字节。
  2. 根据附件元数据,如果内容大小低于特定阈值,我们会进行后续调用以获取附件内容。
  3. 因此,我们的调用如下所示:

    1. 使用GET https://outlook.office365.com/api/v1.0/me/folders/Inbox/messages/?$expand=Attachments($Select=Id,Name,ContentType,Size)
    2. 获取邮件列表
    3. 对于我们需要下载附件的邮件,请在步骤1中返回的各个messageId上调用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
    4. 我们遇到的问题是,对于某些用户/邮件,获取附件的调用会返回以下错误:

      {"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
      

0 个答案:

没有答案