尝试获取用户电子邮件时出现Outlook REST API 403错误

时间:2017-03-23 16:25:46

标签: azure-active-directory adal office365api outlook-restapi office365-restapi

我正在尝试使用Outlook REST API从用户的Outlook邮件中获取电子邮件。我已经能够成功验证用户身份并获取用户访问令牌,但是,当我尝试对Outlook REST API进行AJAX调用时,出现以下错误:

GET https://outlook.office.com/api/v2.0/me/messages?callback=jQuery31008093694845457056_1490285639120 403 (Forbidden)

此外,我从error的{​​{1}}函数回调中得到以下错误:

AJAX

这是我的代码:

Object {readyState: 4, status: 404, statusText: "error"}

我做错了什么?

2 个答案:

答案 0 :(得分:0)

最可能的答案是您的令牌没有适当的范围。在https://jwt.io处解析您的令牌,并查看您在scp声明中的内容。

看起来你错过了对AcquireToken的电话。 login方法只是签署用户并获取其身份,它不提供访问令牌。你需要这样的东西:

ADAL.acquireToken("https://outlook.office.com", function(error, accessToken){
  if (error) {
    console.log('ERROR: ' + JSON.stringify(error));
  } else {
    fetchUserSentMails(accessToken);
  }
}

答案 1 :(得分:0)

我看到你收到超时错误。我有超时的完全相同的问题,我只能通过操纵adal.js库来解决这个问题。在这个库中,超时为6秒,对于某些本地加载的应用程序来说,它似乎非常紧张。为了快速测试,您可以在adal.js中找到LOADFRAME_TIMEOUT:'6000'并将其替换为LOADFRAME_TIMEOUT:'30000',这将为您提供30秒的加载应用程序。我希望它适合你!