在 Graph API 中为其他用户列出和创建任务

List and create tasks for other users in Graph API

我们有一个与 Azure 中的订阅相关联的公司帐户。根据此 Microsoft 文档 (https://docs.microsoft.com/en-us/graph/api/outlookuser-post-tasks?view=graph-rest-beta&tabs=csharp),该帐户属于委派权限类型。我们需要列出其他用户的 outlook 任务并为使用该公司帐户的其他用户创建任务。为此,我们正在尝试使用 Graph API Beta 版本。我们能够为登录用户自己的任务执行这些操作。但是找不到使用上述公司帐户为其他用户执行这些操作的方法。

此时使用 Graph API Beta 版本是否可行? 如果是这样如何进行? 否则满足上述要求的替代方案是什么?

您需要的是应用程序权限,但是Graph OutlookTask API 尚不支持。

OutlookTaskAPI Permissions

编辑:截至今天(6/17/2020),它仍然不受支持。但是,Microsoft UserVoice 上有一个请求。

https://microsoftgraph.uservoice.com/forums/920506-microsoft-graph-feature-requests/suggestions/20160895-add-permissions-tasks-read-all-or-tasks-readwrite

我们不能直接使用POST /users/{id|userPrincipalName}/outlook/tasks为他人创建任务。它将 return 一个错误 "A folder id must be specified for delegate access."

根据我的测试,确实有办法。但实际上这不是一个推荐的方式,因为工作量很大。

我们假设您需要使用 UserA 为 UserB 创建 outlook 任务。

详细步骤:

  1. 用户 B 将邮箱权限 "Full Access" 授予 Office 365 中的用户 A。请参阅 Use the EAC to assign permissions to individual mailboxes。 (请注意,在第 1 步之后,用户 A 将能够打开用户 B 的邮箱并获得其所有权限。此过程最多可能需要数小时才能使更改在系统中传播并生效。)
  2. 使用 UserA 登录到 Graph Explorer。列出 UserB 的任务文件夹 使用 Get https://graph.microsoft.com/beta/users/UserB/outlook/taskfolders。记录下"id"值,下一步会用到。 (如果您看到类似 "The specified object was not found in the store." 的错误,请等待第 1 步生效。)
  3. 使用 Post https://graph.microsoft.com/beta/users/UserB/outlook/taskfolders/{ID from step 2}/tasks 创建任务。