Sharepoint Microsoft graph获取站点中的列表返回401

Sharepoint Microsoft graph获取站点中的列表返回401,sharepoint,office365,microsoft-graph-api,Sharepoint,Office365,Microsoft Graph Api,当我尝试使用此Microsoft Graph查询列出sharepoint网站中的所有列表时,它会返回一个401错误。但是阅读一份清单很好 { "error": { "code": "unauthenticated", "message": "Access denied. You do not have permission to perform this action or access this resource.", "innerError": { "

当我尝试使用此Microsoft Graph查询列出sharepoint网站中的所有列表时,它会返回一个401错误。但是阅读一份清单很好

{
"error": {
    "code": "unauthenticated",
    "message": "Access denied. You do not have permission to perform this action or access this resource.",
    "innerError": {
        "request-id": "6929864e-9d14-4911-9d7e-d0a29259e05f",
        "date": "2017-06-21T21:00:15"
    }
}
}

  • 不工作:{site id}/lists
  • 工作:{site id}/lists/{list id}

感谢

通常,401响应表示服务器验证API请求所需的信息在请求中缺失或存在,但不知何故无效。我建议你:

1) 验证失败的请求中是否存在授权标头

2) 如果存在,则验证失败请求中的授权头的内容是否与成功请求中的授权头的内容相同

如果您在两个请求中发送完全相同的授权头,那么我不希望服务器为一个操作返回401响应,而为另一个操作返回401响应。(如果是权限问题,即用户有权执行操作-a而不是操作-B,那么我希望服务器返回操作-B的403禁止响应,而不是401未经授权的响应。)


更新(一些其他想法)

看起来这两个操作都需要以下两个访问范围之一:

  • 全部
  • Sites.ReadWrite.All
您应该验证您在失败请求的
Authorization
头中指定的令牌是否至少具有其中一个作用域(尽管如前所述,如果您没有适当的访问作用域,我希望服务器返回403)


另外,如果您通过OAuth获得访问令牌而没有用户提供授权,那么此答案中的信息可能会有所帮助:。在post描述的场景中,服务器返回401响应,因为开发人员没有明确获得管理员对他们尝试执行的操作的同意。

您能再试一次吗?这个({site id}/lists)现在似乎正在运行。

@Nico--我已经更新了我的答案,添加了更多信息。你在这个问题上有什么进展吗?