使用 Microsoft Graph API 获取更改通知

命名空间:microsoft.graph

重要

Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

注意

应更新将此功能与 baseTaskbaseTaskList 配合使用的现有应用,因为基于这些资源构建的待办 API 集自 2022 年 5 月 31 日起已弃用。 该 API 集将于 2022 年 8 月 31 日停止返回数据。 请使用 基于 todoTask 构建的 API 集。

Microsoft Graph REST API 使用 Webhook 机制将更改通知传递到客户端。 客户端是一个 Web 服务,用于配置自身的 URL 以接收通知。 客户端应用使用通知在更改时更新其状态。 有关详细信息(包括如何订阅和处理传入通知),请参阅设置用户数据更改的通知

使用 Microsoft Graph API,应用可以订阅以下资源的更改:

资源 支持的资源路径 可包含在通知中的资源数据
云打印 打印机 打印作业准备好下载时的变化(作业可打印事件):
/print/printers/{id}/jobs
不支持
云打印 printTaskDefinition 在队列中具有有效作业时的变化(作业启动事件):
/print/printtaskdefinition/{id}/tasks
OneDrive for Business 上的 driveItem 根文件夹 的层次结构内的内容更改:
/drives/{id}/root
/users/{id}/drive/root
OneDrive(个人版)上的 driveItem 任何文件夹 的层次结构内的内容更改:
/users/{id}/drive/root
对所有组更改:
/groups
对特定组更改:
/groups/{id}
对特定组的所有者所做的更改:
/groups/{id}/owners
对特定组成员所做的更改:
/groups/{id}/members
SharePoint [网站][]下的[列表][] /sites/{id}/lists/{id}
Microsoft 365 组对话 查看组的对话:
groups/{id}/conversations
Outlook 事件 对用户邮箱中的所有事件更改:
/users/{id}/events
Outlook 邮件 对用户邮箱中的所有邮件更改:
/users/{id}/messages
对用户收件箱中的所有邮件更改:
/users/{id}/mailFolders('inbox')/messages
Outlook 个人[联系人][] 对用户邮箱中的所有个人联系人更改:
/users/{id}/contacts
安全警报 对特定警报更改:
/security/alerts/{id}
对已筛选的警报更改:
/security/alerts/?$filter
Teams callRecord 更改 所有 呼叫记录: /communications/callRecords
Teams 频道 对所有团队中频道的更改:
/teams/getAllChannels
对特定团队中频道的更改:
/teams/{id}/channels
Teams 聊天 对租户中任何聊天的更改:
/chats
对特定聊天的更改:
/chats/{id}
Teams chatmessage 对所有团队中所有频道聊天消息更改:
/teams/getAllMessages
对特定频道中的聊天消息更改:
/teams/{id}/channels/{id}/messages
对所有聊天的消息更改:
/chats/getAllMessages
对特定聊天中的消息更改:
/chats/{id}/messages
特定用户在所有聊天中对聊天消息所做的更改是以下内容的一部分:
/users/{id}/chats/getAllMessages
Teams conversationMember 对特定团队中成员身份的更改:
/teams/{id}/members
对特定聊天中成员身份的更改:
/chats/{id}/members
对所有聊天中成员身份的更改:
/chats/getAllMembers
对特定团队下所有频道中的成员身份的更改:
teams/{id}/channels/getAllMembers
Teams onlineMeeting 对联机会议的更改:
/communications/onlineMeetings/?$filter=JoinWebUrl eq {joinWebUrl}
Teams 状态 对单个用户状态的更改: /communications/presences/{id}
对多个用户状态的更改:
/communications/presences?$filter=id in ({id},{id}...)
Teams 团队 对租户中任何团队的更改:
/teams
对特定团队的更改:
/teams/{id}
要执行 baseTask (已弃用) 对特定任务列表中的所有任务进行更改:
/me/tasks/lists/{baseTaskListId}/tasks
对所有任务的更改:
/me/tasks/lists/alltasks
待办事项任务 对特定任务列表中的所有任务进行更改:
/me/todo/lists/{todoTaskListId}/tasks
用户 对所有用户更改:
/users
对特定用户更改:
/users/{id}

注意:以 /users/{id} 开头的任何资源路径还可接受 /me 以引用已登录的用户。

权限

通常订阅操作需要拥有对资源的读取权限。 例如,若要获取邮件通知,应用需要 Mail.Read 权限。 创建订阅一文列出了各个资源类型所需的权限。 下表列出了将 webhook 用于特定资源类型时应用可以请求的权限类型。

权限类型 支持的资源类型
委派 - 工作或学校帐户 警报baseTask (弃用) , 频道聊天, [联系人][], 对话conversationMemberdriveItemlist事件, [消息][], 用户状态chatMessage (预览) , 团队todoTask
委派 - 个人 Microsoft 帐户 baseTask (已弃用) 、 [联系][]人、 driveItemlist、 [event][]、 [message][]、 todoTask
应用程序 警报频道聊天, [联系人][], driveItemlist事件, [消息][], 用户callRecordchatMessageconversationMemberonlinemeeting, [printer][], printTaskDefinition, [team][]

另请参阅