将 Microsoft Graph API 与 Microsoft Teams 结合使用
重要
Microsoft Graph /beta
版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
Microsoft Teams 是 Microsoft 365 中基于聊天的工作区,可提供对特定于团队的日历、文件、OneNote 笔记、规划器计划、排班计划等对象的内置访问权限。 可以使用Microsoft 图形 API与 Microsoft Teams 功能集成。
常见用例
下表列出了 Microsoft Graph 中Microsoft Teams API 的常见用例。
用例 | REST 资源 | 另请参阅 |
---|---|---|
创建和管理团队、组和频道 | 团队、 频道、 组 | 创建团队、 列出团队、 创建频道 |
在 Microsoft Teams 应用目录中添加选项卡、管理或安装应用 | teamsTab、 teamsAppInstallation | 创建 teamsTab, list teamsTab, list installedApps |
创建频道和聊天以发送和接收聊天消息 | 频道, 聊天, chatMessage | 创建频道, 列出频道, 在频道中发送 chatMessage |
使用标记根据团队中的常见属性对用户或组进行分类 | teamworkTag, teamworkTagMember | 列出 teamworkTag, 创建 teamworkTag |
创建和接听呼叫、通话记录或检索会议坐标 | call、 callRecords | 答案, 邀请参与者 |
将机器人连接到呼叫, (IVR) 实现交互式语音响应 | call | IVR 方案 |
创建和检索联机会议或检查用户状态和活动 | onlineMeeting, 状态 | create onlineMeeting, meetingAttendanceReport |
在组织中创建和管理与轮班、日程安排、工时卡或休假的劳动力集成 | workforceIntegration, schedule, shift, timeOff, timeOffReason | 创建 workforceIntegration, 创建计划, 创建班次, 创建 timeOff |
使用员工学习 API 与 Viva Learning | 员工学习、 learningProvider、 learningContent | list learningProviders, list learningContents |
IVR 方案
以下是 Microsoft Graph 中调用 API 支持的交互式语音响应 (IVR) 方案:
- 播放音频提示 - 例如,在客户服务代理的队列中发出呼叫时。
- 录制响应 - 例如,录制呼叫者的音频,通常在他们听到带有选项的提示后。
- 订阅音调 - 例如,当你想知道呼叫者选择的 DTMF 音调时,通常在听到音频提示后。
- 取消媒体处理 - 例如,当你想要取消可能正在处理的任何 playPrompt 或 recordResponse 操作时。
Microsoft Teams 限制
Microsoft Teams 的已测试性能和容量限制将记录在 Microsoft Teams 限制和规范中。 无论是直接使用 Microsoft Teams 还是使用 Microsoft Graph API,这些限制均适用。 由于每个团队都有一个对应的组,并且每个组都是一个目录对象,因此对组数和目录对象数目(“资源”) 的限制也可以发挥作用。
频道内的文件存储在 SharePoint 中;SharePoint online 限制适用。
另请参阅 Microsoft Teams 服务限制。
用户和组
在 Microsoft Graph 中,Microsoft Teams 由组资源表示。 Microsoft Teams 和 Microsoft 365 组均可满足组协作的各种需求。 几乎所有基于组的功能都适用于 Microsoft Teams 和 Microsoft 365 组,例如组日历、文件、笔记、照片、计划等。 团队与 Microsoft 365 组之间的主要区别在于成员之间的通信模式。 团队成员的通信方式是在特定团队的上下文中进行持久聊天。 Microsoft 365 组成员通过组对话进行通信,它们是在 Outlook 的组上下文中发生的电子邮件对话。
具有团队的任何组都具有 resourceProvisioningOptions 属性,它包含“团队”。
注释:可以更改 Group.resourceProvisioningOptions 属性。 请不要在该集合中添加或删除“团队”;否则,当你列出所有团队时,你将获得错误结果。
以下是团队和组之间的 API 级别的区别:
- 持久聊天仅适用于 Microsoft Teams。 此功能由频道和 chatMessage 资源按层次结构表示。
- 组对话仅适用于 Microsoft 365 组。 此功能由对话、conversationThread 和帖子资源按层次结构表示。
- 列出加入的团队方法仅适用于 Microsoft Teams。
- 通话 和 联机会议 API 仅适用于 Microsoft Teams。
- 另请参阅已知问题以了解这些 API。
Microsoft Teams 中的成员身份更改
用例 | 谓词 | URL |
---|---|---|
添加成员 | POST | /teams/{team-id}/members |
删除成员 | DELETE | /teams/{team-id}/members/{membership-id} |
更新成员角色 | PATCH | /teams/{team-id}/members/{membership-id} |
更新团队 | PATCH | /teams/{team-id} |
轮询要求
如果应用程序轮询查看是否更改了某资源,则此操作每天只能执行一次。 (teamsAsyncOperation 是一种例外情况,因为需要频繁对其进行轮询。)如果需要更频繁了解更改,应创建指向该资源的订阅并接收更改通知 (webhooks)。 如果找不到对所需订阅类型的支持,建议通过 Microsoft 365 开发人员平台创意论坛提供反馈。
轮询新邮件时,必须指定支持的日期范围。 有关详细信息,请参阅 获取用户的增量聊天消息。
轮询是指对资源重复进行 GET 操作来了解资源是否变更。 只要同一资源未进行轮询,就可以一天多次对该资源进行 GET 操作。 例如,每次用户访问/刷新网页时,GET /me/joinedTeams 是可以的,但不能每隔 30 秒循环获取 /me/joinedTeams 来刷新该网页。
未遵循这些轮询要求的应用将被视为违反了 Microsoft API 使用条款。 这可能导致额外的限制或暂停/终止使用 Microsoft API。