【发布时间】:2018-01-19 10:17:41
【问题描述】:
我正在尝试构建一个应用程序,该应用程序使用 Microsoft Graph 自动创建和读取存储在 SharePoint 365 中的 OneNotes 中的页面。
只要我登录,我就可以使用 Graph Explorer 成功执行此操作,但无法使用 Postman 中的不记名令牌使其工作
我得到的错误是: 令牌中需要存在 scp 或角色声明
我使用这个成功获得了访问令牌:
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"
}
}
}
我已按以下方式设置图表权限。我也尝试过启用所有配置为相同结果的 Notes 权限 Graph Permissions Image
我发现一个帖子说检查http://jwt.calebb.net/令牌中返回的内容,我发现它不包含任何角色,所以我想知道这是否是问题。
【问题讨论】:
-
您是否尝试过拨打 graph.microsoft.com/v1.0/me/onenote/notebooks 的电话,例如在图形资源管理器中?
-
不可能。我没有连接到用户端点,所以 /me 只是抛出一个错误说明
-
你能解决这个问题吗?我想我遇到了同样的问题。
-
哦,我明白了,我有一个 v1 应用程序,但我试图调用 v2 OAuth 端点。当我应该在 Microsoft Graph 中使用站点权限时,我也在使用 Sharepoint 权限。
标签: microsoft-graph-api onenote