Microsoft Graph:如何通过 Web 应用程序从组织的用户那里获取数据?

Microsoft Graph: how to get Data from users of an organisation through web app?

我正在构建一个 Web 应用程序,它需要从我组织的某些用户的 Outlook 任务中访问任务。根据以下内容,我知道此功能对于 Microsoft Graph 来说是相当新的:

https://developer.microsoft.com/en-us/graph/docs/concepts/changelog#outlook-tasks

当我使用 Graph Explorer 时,我可以通过此调用获得我的所有任务:

https://graph.microsoft.com/beta/me/outlook/tasks

但是我的任务或当前用户的任务不是我需要的。我需要有权访问我组织中所有 Outlook 任务用户的任务列表,而不管应用程序中当前连接的是谁。我知道我可以使用类似这样的东西从特定用户那里获取任务:

GET /users/{id|userPrincipalName}/outlook/tasks

但我总是收到以下回复:

{ "error": { "code": "ErrorAccessDenied", "message": "Access is denied. Check credentials and try again.", "innerError": { "request-id": "5831bd5b-8fd1-4f77-b49b-c976ddffab3f", "date": "2017-07-18T15:42:49" } } }

我已经授予每个管理员的权限,但我仍然收到相同的回复。我是否跳过了重要步骤?如果是这样,这些步骤是什么?我可以在 Graph Explorer 中测试此功能还是必须在我的应用程序中测试它?

目前,您只能使用委派权限(即代表当前用户)访问 Outlook 任务。您可以使用 Tasks.Read.Shared 范围到达他们自己的任务之外,但同样,这只提供对与当前用户共享的 Outlook 任务的额外访问。

您在这里寻找的是 Tasks.Read.AllTasks.ReadWrite.All 权限。这些将属于应用程序权限,需要行政同意。目前此功能不可用,但我确定正在考虑中。我当然会建议在 User Voice 中发布此建议。