注册 Microsoft Teams 的通话和会议机器人
参与音频或视频通话和联机会议的机器人是常规 Microsoft Teams 机器人,具有以下用于注册机器人的额外功能:
- 有一个新版本的应用清单 (以前称为 Teams 应用清单) 具有两个附加设置
supportsCalling
和supportsVideo
。 这些设置包含在 应用清单中。 - 必须为机器人的 Microsoft 应用 ID 配置 Microsoft Graph 权限。
- Graph 通话和联机会议 API 权限需要租户管理员同意。
新建应用清单设置
通话和联机会议机器人在 manifest.json 中具有以下两个附加设置,用于在 Teams 中为机器人启用音频或视频。
bots[0].supportsCalling
. 如果存在且设置为true
,则 Teams 允许机器人参与通话和联机会议。bots[0].supportsVideo
. 如果存在且设置为true
,则 Teams 知道机器人支持视频。
如果希望 IDE 针对这些值正确验证通话和会议机器人的 manifest.json 架构,则可以更改 $schema
属性,如下所示:
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.11/MicrosoftTeams.schema.json",
下一部分使你能够创建新的机器人或将通话功能添加到现有机器人。
创建新机器人或添加通话功能
有关创建机器人的信息,请参阅为 Teams 创建机器人。
若要为 Teams 创建新机器人,请执行以下操作:
使用此链接创建新的机器人
https://dev.botframework.com/bots/new
。 或者,如果在 Bot Framework 门户中选择“创建机器人”按钮,则在 Microsoft Azure 中创建机器人,必须为其创建 Azure 帐户。添加 Teams 频道。
选择 Teams 频道页面上的“通话”选项卡。 选择“启用通话”,然后使用接收传入通知的 HTTPS URL 更新 Webhook(用于通话),例如
https://contoso.com/teamsapp/api/calling
。 有关详细信息,请参阅配置频道。
下一部分提供通话和联机会议支持的应用程序权限列表。
添加 Graph 权限
Graph 提供精细的权限来控制应用对资源的访问权限。 你可以决定应用请求哪些 Graph 权限。 Graph 调用 API 支持特定于资源的许可 (RSC) 权限和应用程序权限。
呼叫的 RSC 权限
RSC 是由 Teams 构建的授权框架,Microsoft标识平台,允许向应用授予作用域内访问权限。 通过 RSC,授权用户可以向应用授予对资源类型特定实例的数据的访问权限。
如果聊天具有与之关联的会议或通话,则相关的 RSC 权限也适用于这些资源。
下表提供了用于调用的 RSC 应用程序权限:
权限名称 | 操作 |
---|---|
Calls.AccessMedia.Chat |
访问与此聊天或会议关联的通话中的媒体流。 |
Calls.JoinGroupCalls.Chat |
加入与此聊天或会议关联的通话。 |
通话的应用程序权限
在没有登录用户的情况下运行的应用使用调用的应用程序权限。 租户管理员必须授予对应用程序权限的许可。
下表提供了通话的应用程序权限列表:
权限 | 显示字符串 | 说明 | 需经过管理员同意 |
---|---|---|---|
Calls.Initiate.All | 从应用发起一对一拨出通话(预览版)。 | 允许应用在没有登录用户的情况下,向单个用户发起播出通话并将通话转接到组织目录中的用户。 | 是 |
Calls.InitiateGroupCall.All | 从应用预览启动传出 1:1 和组调用。 | 允许应用在没有登录用户的情况下向单个用户、多个用户发出出站呼叫、转移呼叫并将参与者添加到组织中的会议。 | 是 |
Calls.JoinGroupCall.All | 作为应用加入组通话和会议(预览版)。 | 允许应用在没有登录用户的情况下,加入组织中的组通话和计划会议。 应用加入到租户的会议中并获得目录用户特权。 | 是 |
Calls.JoinGroupCallasGuest.All | 作为来宾加入组通话和会议(预览版)。 | 允许应用在没有登录用户的情况下,以匿名方式加入组织中的组通话和计划会议。 应用作为来宾加入租户的会议。 | 是 |
Calls.AccessMedia.All | 作为应用访问通话中的媒体数据流(预览版)。 | 允许应用在没有登录用户的情况下,直接访问通话中的媒体数据流。 | 是 |
重要
不得使用媒体访问 API 进行记录,否则保留来自应用程序访问的通话或会议的媒体内容,或派生自该媒体内容或录制文件的数据。 必须先调用 updateRecordingStatus
API 以指示录制已开始,并从该 API 收到成功回复。 如果应用程序开始录制任何会议或通话,则必须先结束录制,然后再调用 updateRecordingStatus
API 以指示录制已结束。
联机会议的应用程序权限
下表提供了联机会议的应用程序权限列表:
权限 | 显示字符串 | 说明 | 需经过管理员同意 |
---|---|---|---|
OnlineMeetings.Read.All | 从应用阅读联机会议详细信息(预览版) | 允许应用在没有登录用户的情况下读取组织中的联机会议详细信息。 | 是 |
OnlineMeetings.ReadWrite.All | 代表用户从应用读取和创建联机会议(预览版) | 允许应用在没有登录用户的情况下代表用户创建组织中的联机会议。 | 是 |
分配权限
如果希望使用 Azure Active Directory (Azure AD) v1 终结点,则必须使用 Microsoft Azure 门户提前为机器人配置应用程序权限。
获取租户管理员同意
对于使用 Azure AD v1 终结点的应用,当应用安装在其组织中时,租户管理员可以使用 Microsoft Azure 门户 同意应用程序权限。 或者,可以在应用中提供注册体验,管理员可以通过该体验同意你配置的权限。 Microsoft Entra ID 记录管理员同意后,应用可以请求令牌,而无需再次请求同意。
可以通过管理员在 Azure 门户中Microsoft授予应用所需的权限。 更好的选择是使用 Azure AD v2 /adminconsent
终结点为管理员提供注册体验。 有关详细信息,请参阅 有关构造管理员同意 URL 的说明。
注意
若要构造租户管理员同意 URL,需要在 应用注册门户中 配置重定向 URI 或回复 URL。 若要为机器人添加回复 URL,请访问机器人注册,选择“高级选项”>“编辑应用程序清单”。 将重定向 URL 添加到 replyUrls
集合。
重要
任何时候更改应用程序的权限都必须重复管理员同意过程。 租户管理员重新应用同意之后,才会反映应用注册门户中所做的更改。
代码示例
示例名称 | 说明 | .NET |
---|---|---|
通话和会议机器人 | 示例应用演示了机器人如何创建通话、加入会议和转移通话。 | View |
实时会议事件 | 示例应用演示了机器人如何接收实时会议事件。 | View |
分步指南
按照 分步指南 设置 Teams 通话和会议机器人。