Outlook REST API - 请求用户详细信息时出现ErrorItemNotFound错误,而不是其他端点

时间:2017-01-18 15:06:49

标签: outlook-restapi

使用Outlook REST API,我试图获取特定用户的详细信息。使用GET /api/v1.0/users/{email@domain.com}GET /api/v2.0/users/{email@domain.com}GET /api/v1.0/meGET /api/v2.0/me个端点中的任何一个,我收到以下404响应:

{
  "error": {
     "code": "ErrorItemNotFound",
     "message": "The requested user '{email@domain.com}' is invalid."
  }
}

此失败请求的示例响应标头如下:

HTTP/1.1 404 Not Found
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
Server: Microsoft-IIS/8.5
request-id: 1f11b407-5c2d-4c9b-b2aa-af837367cad4
X-CalculatedFETarget: CY4PR19CU002.internal.outlook.com
X-BackEndHttpStatus: 404
Set-Cookie: exchangecookie={hidden}; expires=Fri, 19-Jan-2018 14:43:02 GMT; path=/; HttpOnly
X-FEProxyInfo: CY4PR19CA0037.NAMPRD19.PROD.OUTLOOK.COM
X-CalculatedBETarget: CY4PR10MB1542.namprd10.prod.outlook.com
X-BackEndHttpStatus: 404
OData-Version: 4.0
X-AspNet-Version: 4.0.30319
X-DiagInfo: CY4PR10MB1542
X-BEServer: CY4PR10MB1542
X-FEServer: CY4PR19CA0037
X-Powered-By: ASP.NET
X-FEServer: BN3PR04CA0035
Date: Thu, 19 Jan 2017 14:43:01 GMT

该请求还包含X-AnchorMailboxAuthorizationAccept标头。如果我尝试从请求中删除X-AnchorMailbox标头的任何上述端点,我会看到返回相同的错误消息。

我为用户提供了有效的Oauth访问令牌以及有效的Oauth刷新令牌。我可以成功刷新用户的访问令牌,我也能够成功为用户调用其他端点,例如:

GET /api/v1.0/Me/Contacts

GET /api/v1.0/me/folders

GET /api/v1.0/me/folders/{folderId}/childfolders

GET /api/v1.0/me/folders/{folderId}/messages

同样,这些请求中的每一个都包含X-AnchorMailboxAuthorizationAccept标题。

成功请求的示例响应标头如下:

HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
Server: Microsoft-IIS/8.5
request-id: 4225f4c7-9933-4252-9e03-79f607957181
X-CalculatedFETarget: CY4PR19CU002.internal.outlook.com
X-BackEndHttpStatus: 200
Set-Cookie: exchangecookie={hidden}; expires=Fri, 19-Jan-2018 14:43:37 GMT; path=/; HttpOnly
X-FEProxyInfo: CY4PR19CA0043.NAMPRD19.PROD.OUTLOOK.COM
X-CalculatedBETarget: CY4PR10MB1542.namprd10.prod.outlook.com
X-BackEndHttpStatus: 200
OData-Version: 4.0
X-AspNet-Version: 4.0.30319
X-DiagInfo: CY4PR10MB1542
X-BEServer: CY4PR10MB1542
X-FEServer: CY4PR19CA0043
X-Powered-By: ASP.NET
X-FEServer: BN3PR04CA0008
Date: Thu, 19 Jan 2017 14:43:37 GMT

为什么我会在用户端点上获得404,表明用户无效,但是能够从其他端点成功接收用户的数据?

1 个答案:

答案 0 :(得分:0)

您还可以使用/Me API获取用户详细信息。 /Me API只是当前经过身份验证的用户的捷径。因此,如果Users('email@domain')中经过身份验证的用户和用户相同,则可以使用Me

我认为您在MeUsers的情况下不会尝试访问同一个用户,这就是API抱怨的原因或您在用户中使用的电子邮件地址没有属于您获得令牌的同一租户。