Office365 由于401未经授权,使用Graph API(按应用程序)访问Office 365 Planner数据时出现问题

Office365 由于401未经授权,使用Graph API(按应用程序)访问Office 365 Planner数据时出现问题,office365,office365api,microsoft-graph-api,Office365,Office365api,Microsoft Graph Api,我一直在努力使用我在Azure中安装的应用程序从office 365访问planner数据。我已经能够成功检索许可和用户信息,但无法(从Planner)获取用户任务列表 进一步澄清: 我正在尝试访问其他用户planner数据任务,而不是我自己的任务 这不是面向用户的应用程序,用户从不登录。我正在使用我注册的应用程序客户端/密钥使用REST接口,以获取用于后续请求的令牌。我不是以用户身份登录,我是以应用程序身份登录,因为使用“我”将无法像在graph api explorer中那样工作 通信正在

我一直在努力使用我在Azure中安装的应用程序从office 365访问planner数据。我已经能够成功检索许可和用户信息,但无法(从Planner)获取用户任务列表

进一步澄清:

  • 我正在尝试访问其他用户planner数据任务,而不是我自己的任务
  • 这不是面向用户的应用程序,用户从不登录。我正在使用我注册的应用程序客户端/密钥使用REST接口,以获取用于后续请求的令牌。我不是以用户身份登录,我是以应用程序身份登录,因为使用“我”将无法像在graph api explorer中那样工作
  • 通信正在成功进行,我能够毫无问题地读取和写入任何其他用户数据。问题似乎清楚地说明了,正在使用的应用程序没有查看planner数据的权限,但我已授予此应用程序所有权限,并且在尝试读取planner数据时仍获得401
  • 我不确定所使用的技术是否相关,但为了提供尽可能多的细节,我使用nodejs和adal节点()
图形文档:

文档清楚地说明了执行此操作所需的作用域是Group.ReadWrite.All和Tasks.ReadWrite,我已经向应用程序提供了它们(以及大量其他权限,因为我变得绝望和恼怒)。将为下面列出的每个应用程序检查所有应用程序权限和所有委派权限。我会在我完成这项工作后删除必要的,但我认为这将有助于缓解“您是否尝试过检查这个..或那个..响应”

我意识到这是测试版,但我希望利用它,并认为也许其他人有更好的运气

我已尝试通过以下两种方式形成请求: ?$filter=createdBy等式“[username]”

两者都会产生以下结果(由于长度原因,大部分邮件已被删除):

{错误:
{代码:'未知错误',
消息:“…401-未经授权:由于凭据无效,访问被拒绝。\r\n您没有使用您提供的凭据查看此目录或页面的权限…”,
内部错误:
{“请求id”:“09ef3a04-7fc2-48a0-9570-7f04171e45ed”,
日期:“2016-05-11T14:18:12”

我在这方面花了很多时间,使用图形浏览器

  • 当我质疑自己的任务时,我总是成功的
  • 查询其他人的任务时,我得到403个错误
  • 我的场景中没有一个返回401个错误

    基于这些,我怀疑在您正在使用的特定端点服务器上,IIS的设置不合适

    这可能是真的,尤其是当它还是测试版时

    你可以在这篇文章中找到类似的问题

    我查看了跟踪日志,看看这里发生了什么。如上所述,您正在使用仅应用程序流(在OAuth2.0术语中也称为client_凭证流,但基本上应用程序在没有任何用户上下文的情况下以自身身份调用)调用Microsoft Graph(这里还有任务API)。在使用应用程序只读流时管理API的权限是您在中间列(应用程序权限)中的UX截图中选择的权限。p> Microsoft Graph目前不支持仅应用程序访问任务API。这就是为什么你会得到一个未经授权的401。为了访问Microsoft Graph下的任务API(在组中),您需要在“委派权限”(UX中的右栏)下选择group.ReadWrite.All和Tasks.ReadWrite权限,并使用代码流获取具有已登录用户上下文的访问令牌。ADAL for node.js应支持在app+用户模式下调用

    如果您的场景需要仅应用程序访问Microsoft Graph,请为Microsoft Graph提交功能请求,以支持组和任务仅应用程序访问


    希望这能有所帮助,

    您用图形浏览器试用过吗?两者都可以正常工作。您要查询的用户是您自己还是组织中的某个随机用户?更新了问题以进一步澄清。@fuzion9您能够检索到所有用户的planner数据吗?我也在开发一个类似的应用程序,有很多困惑。一个想法或路线图对我来说很好。谢谢你的回复!我现在可以不再把头撞在墙上了:)嗨@Dan Microsoft Graph现在是否支持仅应用程序访问任务API?
    { error: 
       { code: 'UnknownError',
         message: '...<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>\r\n  <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>...',
         innerError: 
          { 'request-id': '09ef3a04-7fc2-48a0-9570-7f04171e45ed',
            date: '2016-05-11T14:18:12' } } }