Office 365 REST日历API,用于在使用OAuth承载令牌进行身份验证时创建HTTP-403失败的事件

Office 365 REST日历API,用于在使用OAuth承载令牌进行身份验证时创建HTTP-403失败的事件,api,rest,azure,oauth,office365,Api,Rest,Azure,Oauth,Office365,My azure托管的web API使用O365日历和邮件REST API代表用户创建事件和邮件。已为相应的Azure AD应用程序启用所有必要的权限。我的问题是,使用Bearer OAuth令牌作为标头的一部分访问邮件API成功,但当我将相同的令牌用于events API时,它会失败,并返回403。 我在实施过程中遵循的文件是官方msdn文件和更新- 考虑到一个API会出现403禁止错误,我建议您查看为应用程序启用的资源。能否确保您具有日历API的写入权限?我知道你提到过你以前做过这件事,我只

My azure托管的web API使用O365日历和邮件REST API代表用户创建事件和邮件。已为相应的Azure AD应用程序启用所有必要的权限。我的问题是,使用Bearer OAuth令牌作为标头的一部分访问邮件API成功,但当我将相同的令牌用于events API时,它会失败,并返回403。 我在实施过程中遵循的文件是官方msdn文件和更新-


考虑到一个API会出现403禁止错误,我建议您查看为应用程序启用的资源。能否确保您具有日历API的写入权限?我知道你提到过你以前做过这件事,我只是想检查一下,以防你错过了那些烫发机会。

很抱歉一直挂着这个问题。
问题在于ClientSecret对其拥有过时的权限,或者一开始就错了。通过管理门户生成一个新的令牌解决了这个问题。

您使用什么资源ID来获取承载令牌?资源ID-
Fiddler trace (Raw view of request) - 
POST https://outlook.office365.com/ews/OData/Me/Events HTTP/1.1
Accept: application/json
client-request-id: 00000000-0000-0000-0000-000000000000
Authorization: Bearer <OAuth token>
Content-Type: application/json; charset=utf-8
Host: outlook.office365.com
Content-Length: 287
Expect: 100-continue

{"Attendees":[{"EmailAddress":{"Address":"sample@sample.com","Name":null},"Type":"Required"}],"Body":{"Content":"Hello World","ContentType":"HTML"},"End":"2014-10-22T19:00:00Z","Location":{"DisplayName":"Conf Room M"},"Start":"2014-10-22T18:00:00Z","Subject":"Testing"}

Text view of response -
{"error":{"code":"ErrorAccessDenied","message":"Access is denied. Check credentials and try again."}}

Fiddler trace of the Mail API request that works fine -
POST https://outlook.office365.com/ews/OData/Me/sendmail HTTP/1.1
Accept: application/json
client-request-id: 00000000-0000-0000-0000-000000000000
Authorization: Bearer <OAuth Token>
Content-Type: application/json; charset=utf-8
Host: outlook.office365.com
Content-Length: 171
Expect: 100-continue
Connection: Keep-Alive

{"Message":{"Body":{"Content":"Test","ContentType":"HTML"},"Subject":"test","ToRecipients":[{"EmailAddress":{"Address":"sample@sample.com","Name":null}}]}}