访问令牌验证失败-MS Graph API版本2

时间:2019-02-22 12:22:13

标签: outlook azure-active-directory office365 microsoft-graph

我在这个问题上搜索了很多,但没有任何帮助。我也看到过很多类似的帖子,但没有用。

我正在使用MS Graph API V2访问用户电子邮件,日历和联系人数据。

授权URL:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=ABC&redirect_uri=redirectURL&response_type=code&scope=Mail.Read(ScopeURL)

令牌请求网址:

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

Headers:

Content-Type:application/x-www-url-form-urlencoded

Body: 

client_id:ABC
redirect_uri:RedirectURL
grant_type:authorization_code
client_secret:KEY
code: pasted from browser URL

登录后,我已经成功获取浏览器URL中的 code ,并使用相同的 code 来获取访问令牌。

用户个人资料/邮件/联系人请求:

例如:我正在尝试读取用户个人资料以及用户邮件。

相应请求:

Profile: https://graph.microsoft.com/v1.0/me/

Mail Messages: https://graph.microsoft.com/v1.0/me/messages

Header: Authorization:Bearer (AccessToken pasted from token request)

但是无论使用上面的哪个请求,我都会遇到错误。

{
    "error": {
        "code": "InvalidAuthenticationToken",
        "message": "Access token validation failure.",
        "innerError": {
            "request-id": "1e232525-6772-483e-87e3-679d5fcb8fb5",
            "date": "2019-02-22T11:53:50"
        }
    }
}

我已经设置了邮件读写权限,访问日历数据,联系人(完全访问权限)

我在https://apps.dev.microsoft.com中创建了应用程序

1 个答案:

答案 0 :(得分:1)

范围格式应为https://graph.microsoft.com/Mail.Read Mail.ReadWrite User.Read。我尝试了以下方法,它有效。

enter image description here

要获取我/联系人,您需要授予Contacts.ReadContacts.ReadWrtie权限。

enter image description here

当您需要access_token时,授权URL应如下所示: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?(需要使用common来代替tenant name)。

enter image description here