0

在我的应用程序中,我通过

GET https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/authorize?client_id=<CLIENT_ID>&response_type=code&response_mode=query&scope=user.read+mail.send+mail.readwrite&redirect_uri=https%3A%2F%2Fgraphresponse%2F&prompt=consent

使用代码

POST https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token

application/x-www-form-urlencodedgrant_type=authorization_code&redirect_uri=https%3A%2F%2Fgraphresponse%2F&client_id=<CLIENT_ID>&scope=user.read+mail.send+mail.readwrite&client_secret=<CLIENT_SECRET>&code=<CODE>

到目前为止一切顺利,我收到了这样的不记名令牌(为便于阅读而格式化):

{"token_type":"Bearer",
 "scope": 
      "Mail.Read Mail.Read.All Mail.Read.Shared 
       Mail.ReadBasic Mail.ReadWrite Mail.ReadWrite.Shared 
       Mail.Send openid User.Read profile email",
 "expires_in":3600,
 "ext_expires_in":3600,
 "access_token":"<TOKEN>"
}

我可以使用以下端点

GET http://graph.microsoft.com/v1.0/me 
POST http://graph.microsoft.com/v1.0/me/sendMail 
POST http://graph.microsoft.com/v1.0/me/messages

但我收到以下错误

GET http://graph.microsoft.com/v1.0/me/messages

{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "xxxxxxx",
      "date": "2019-03-12T13:38:47"
    }
  }
}

我是否错过了明确读取当前用户收件箱所需的任何配置,或者是否需要任何管理员配置?

4

1 回答 1

1

当您尝试使用授权代码流时,您需要遵循以下内容

访问步骤

https://graph.microsoft.com数据。

笔记:

  1. 确保您已注册 Office 365 用户帐户

  2. 所有必需的权限授予

正如文档 首先解释的那样,您需要令牌请求代码

response_type = 代码

要做到这一点,有两种方法。

来自邮递员请求和来自带有您所需凭据的浏览器

在这里,我将展示邮递员的解决方法,您也可以尝试将其粘贴到浏览器上。

邮递员代码访问示例

在此确保在门户中您已按预期配置此 URL,请参见以下屏幕截图:

在此处输入图像描述

要获取 v2.0 令牌请求访问代码,请将请求端点设置为:

https://login.microsoftonline.com/common/oauth2/v2.0/token

内容类型为:application/x-www-url-form-urlencoded

请看下面的屏幕截图:

在此处输入图像描述

现在单击授权选项卡并选择类型 OAuth 2.0 并单击获取新访问权限

令牌。请看下面的屏幕截图:

在此处输入图像描述

您将提示邮递员弹出窗口,如下所示:

在此处输入图像描述

在此处输入您的必要信息,然后单击请求令牌

在邮递员控制台正文段中,您将获得令牌请求的访问代码。请看下面的屏幕截图:

在此处输入图像描述

复制代码以备下次使用。

现在在 post man 上为令牌请求添加一个新选项卡,如下所示:

在此处输入图像描述

作为回应,您将获得如下访问令牌:

在此处输入图像描述

现在有了这个令牌请求到您预期的端点,例如http://graph.microsoft.com/v1.0/me

请看下面的屏幕截图:

在此处输入图像描述

作为回应,您将按预期获得端点数据

请参阅下面的屏幕截图:

在此处输入图像描述

如果您还有任何问题,请告诉我谢谢。

于 2019-03-13T09:47:24.897 回答