我正在尝试构建一个应用程序,使用Microsoft Graph自动创建和读取存储在SharePoint 365中的OneNotes页面。
只要我登录了,我就可以使用Graph Explorer成功地完成这项工作,但是无法在Postman中使用Bearer令牌使其正常工作。
我得到的错误是:令牌中必须存在scp或roles声明
我成功地使用以下方法获取访问令牌:
https://login.microsoftonline.com/common/oauth2/v2.0/token
传入grant_type、client_id、client_secret、code、redirect_uri和scope。
接着,我执行以下调用,并在头部包含访问令牌:
https://graph.microsoft.com/v1.0/sites
以下内容被返回:
{
"error": {
"code": "AccessDenied",
"message": "Either scp or roles claim need to be present in the token.",
"innerError": {
"request-id": "fa442c72-4ffe-493b-a33a-8e9e78c94f09",
"date": "2018-01-19T09:56:34"
}
}
}
我已按照以下设置图形权限。我也尝试启用了所有注释权限,但结果相同。 图形权限图像 我发现一篇文章说要检查返回令牌中的内容,可以在http://jwt.calebb.net/上进行检查,我发现它不包含任何角色,因此我想这可能是问题所在。