将 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 应用目录中添加选项卡、管理或安装应用 teamsTabteamsAppInstallation 创建 teamsTablist teamsTablist installedApps
创建频道和聊天以发送和接收聊天消息 频道聊天chatMessage 创建频道列出频道在频道中发送 chatMessage
使用标记根据团队中的常见属性对用户或组进行分类 teamworkTagteamworkTagMember 列出 teamworkTag创建 teamworkTag
创建和接听呼叫、通话记录或检索会议坐标 callcallRecords 答案邀请参与者
将机器人连接到呼叫, (IVR) 实现交互式语音响应 call IVR 方案
创建和检索联机会议或检查用户状态和活动 onlineMeeting状态 create onlineMeetingmeetingAttendanceReport
在组织中创建和管理与轮班、日程安排、工时卡或休假的劳动力集成 workforceIntegrationscheduleshifttimeOfftimeOffReason 创建 workforceIntegration创建计划创建班次创建 timeOff
使用员工学习 API 与 Viva Learning 员工学习learningProviderlearningContent list learningProviderslist learningContents

IVR 方案

以下是 Microsoft Graph 中调用 API 支持的交互式语音响应 (IVR) 方案:

  • 播放音频提示 - 例如,在客户服务代理的队列中发出呼叫时。
  • 录制响应 - 例如,录制呼叫者的音频,通常在他们听到带有选项的提示后。
  • 订阅音调 - 例如,当你想知道呼叫者选择的 DTMF 音调时,通常在听到音频提示后。
  • 取消媒体处理 - 例如,当你想要取消可能正在处理的任何 playPromptrecordResponse 操作时。

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 中的成员身份更改

用例 谓词 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。