2015-09-22 33 views
0

我试图访问Microsoft的Outlook.com日历REST API。我正确设置了OAUTH2身份验证,并有可用的有效访问令牌和刷新令牌。Microsoft Calendar REST API - 禁止访问OData

但是,如果我试图用我的访问令牌来访问日历列表@https://outlook.office.com

GET /api/v1.0/me/calendars HTTP/1.1 
Accept: application/json; odata.metadata=none 
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciO[...] 

403 Forbidden

HTTP/1.1 403 Forbidden 
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 
Set-Cookie: ClientId=OD6KHQBTKOKMLXUI8OJEG; expires=Wed, 21-Sep-2016 18:37:21 GMT; path=/; secure; HttpOnly 
Set-Cookie: exchangecookie=8e4f582170cb445780c7148e9494b293; expires=Thu, 22-Sep-2016 18:37:23 GMT; path=/; HttpOnly 
Set-Cookie: ClientId=OD6KHQBTKOKMLXUI8OJEG; expires=Wed, 21-Sep-2016 18:37:21 GMT; path=/; secure; HttpOnly 
request-id: 7113f37d-69e0-4f8c-a264-9f3599d47899 
X-CalculatedBETarget: CY1PR08MB1801.namprd08.prod.outlook.com 
X-BackEndHttpStatus: 403 
OData-Version: 4.0 
X-AspNet-Version: 4.0.30319 
X-DiagInfo: CY1PR08MB1801 
X-BEServer: CY1PR08MB1801 
X-Powered-By: ASP.NET 
X-FEServer: AM3PR04CA0074 
X-MSEdge-Ref: Ref A: D69A31E4FAA44258B0B8C351A71D2F9E Ref B: 0D3CA60C0976F50C452293F8CF403D8C Ref C: Tue Sep 22 11:37:23 2015 PST 
Date: Tue, 22 Sep 2015 18:37:22 GMT 

{"error":{"code":"ErrorAccessDenied","message":"Access to OData is disabled."}} 

的服务回报我Outlook's OAuth Sandbox,其中相同的发挥各地请求返回一个200 OK正确的数据在正文中。奇怪的是,他们发现一个不错的小让我看看!按钮,但是这个确切curl命令将再次失败,并在我的终端中出现403错误。

我错过了什么?

+0

当你使用cURL时,你是否在使用操场提供给你的令牌,或者你是否使用了应用程序中的令牌? –

+0

当您调用/api/v1.0/me/calendars时,能否请您提供失败响应的标题?这也将帮助我们弄清为什么访问被拒绝。 –

+1

@JasonJohnston无论我使用操场还是我的应用程序中的令牌,我都可以得到相同的结果。 –

回答

0

我跟微软的技术人员交谈过。我的问题是,REST API未公开(尚未),并且Microsoft尚未为标准Outlook.com帐户启用API。

我要求与REST API一个Outlook的开发者预览帐户通过写邮件启用[email protected]

用了一段时间,直到我从微软的回应,但使用开发者帐户一切正常,现在如预期。