Kar*_*vIR 3 api ms-office office365 azure-active-directory
我正在尝试使用Office 365 API构建我的第一个应用程序并且有一个大问题.
我正在尝试使用Office 365 API和Azure Active Directory获取有关用户的主要信息,为此我正在做:
1)获取访问令牌.对于令牌的https://login.windows.net/common/oauth2/token的http post请求:
标题:内容类型:application/x-www-form-urlencoded
发布数据:
grant_type = authorization_code
client_id = *my_client_id*
client_secret = *my_client_secret*
session_state = e5fb6cd5-28f7-4dfc-b793-9ce8522534ac
code = *code_that_i_got_to_my_callback_url*
resource = https://outlook.office365.com/
Run Code Online (Sandbox Code Playgroud)
我得到了access_token,refresh_token,id_token,资源等的响应.
2)我正在尝试获取有关访问令牌的用户的主要信息:
GET请求https://outlook.office365.com/api/v1.0/me与
头:
client-request-id: *some_random_id*
return-client-request-id: true,
authorization: 'Bearer ' + *access_token*
Accept: '*/*'
Run Code Online (Sandbox Code Playgroud)
但我得到:
{ error:
{ code: 'ErrorAccessDenied',
message: 'Access is denied. Check credentials and try again.' } }
Run Code Online (Sandbox Code Playgroud)
我在AAD的应用程序拥有一切的最大权限(对不起俄语):
我正在做这里的所有事情:http: //blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-交换在线在办公室,365.aspx
最有趣的时刻是,一周前一切都运行良好(除了有时响应时间约为30秒),我可以获得有关用户的信息.
最后一件事.在该页面上(http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-exchange-online- in-office-365.aspx)你可以通过参数prompt = admin_consent 找到https://login.windows.net/common/oauth2/token的请求.它也在一周前工作,但现在如果你尝试你会得到错误的请求(400).
感谢您提出的问题,很遗憾听到您使用第一个应用时出现的问题.是否可以检查Office 365 Exchange Online的权限,并确保未选中"对用户的邮箱具有完全访问权限"权限?有关详细信息,请参见附图.
这是为了使用名为Exchange Web Services的旧API访问用户的邮箱,而不是用于Office 365 REST API.我认为您的REST API请求正在"拒绝访问",因为您可能已选择此权限.
如果您在删除此权限后仍然遇到问题,请与我们联系.如果您有任何疑问或需要更多信息,请与我们联系.
谢谢,
Venkat