使用 Microsoft Graph API 获取更改通知
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
注意
应更新将此功能与 baseTask 或 baseTaskList 配合使用的现有应用,因为基于这些资源构建的待办 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 (弃用) , 频道, 聊天, [联系人][], 对话, conversationMember, driveItem, list, 事件, 组, [消息][], 用户, 状态, chatMessage (预览) , 团队, todoTask |
| 委派 - 个人 Microsoft 帐户 | baseTask (已弃用) 、 [联系][]人、 driveItem、 list、 [event][]、 [message][]、 todoTask |
| 应用程序 | 警报, 频道, 聊天, [联系人][], driveItem, list, 事件, 组, [消息][], 用户, callRecord, chatMessage, conversationMember, onlinemeeting, [printer][], printTaskDefinition, [team][] |
另请参阅
反馈
提交和查看相关反馈