Teams机器人(Bot Framework/PVA)能否启用Viva Topics功能?
Teams机器人(Bot Framework/PVA)集成Viva Topics话题悬停卡片方案
核心结论
可以实现让Teams机器人发送的自适应卡片中,话题标签(如#Google)悬停时显示对应Viva主题卡片的功能,需要结合Viva Topics的Graph API能力和Teams的原生实体渲染机制。
基于Bot Framework的实现步骤
权限配置
- 确保租户已启用Viva Topics服务,在Azure AD中为机器人应用授予
Topic.Read.All的应用权限,并完成管理员同意。 - 机器人需接入Teams环境(通过
teamsChannel配置或Teams Channel Registration)。
- 确保租户已启用Viva Topics服务,在Azure AD中为机器人应用授予
获取Viva主题信息
- 调用Microsoft Graph API的Viva Topics接口,根据话题名称查询对应的主题详情:
GET https://graph.microsoft.com/v1.0/solutions/vivaTopics/topics?$filter=displayName eq 'Google' - 提取返回结果中的
id(主题唯一标识)和displayName等核心字段。
- 调用Microsoft Graph API的Viva Topics接口,根据话题名称查询对应的主题详情:
构建带话题关联的自适应卡片
- 在自适应卡片的文本元素中,使用Teams的实体提及格式,将话题标签与Viva主题绑定。示例卡片片段:
{ "type": "TextBlock", "text": "相关话题:<at id=\"{Viva主题ID}\">#Google</at>", "msteams": { "entities": [ { "type": "topic", "id": "{Viva主题ID}", "name": "Google" } ] } } - 发送该卡片后,Teams会自动识别话题实体,鼠标悬停
#Google时将显示对应的Viva主题卡片。
- 在自适应卡片的文本元素中,使用Teams的实体提及格式,将话题标签与Viva主题绑定。示例卡片片段:
基于Power Virtual Agents(PVA)的实现步骤
启用Viva Topics集成
- 在PVA的设置 > 集成中,启用Viva Topics连接器,完成租户授权。
获取Viva主题数据
- 在PVA对话流程中,添加查找Viva主题动作,通过话题名称(如
Google)查询对应主题的ID和详情。 - 将查询结果存储为变量(如
TopicID、TopicName)。
- 在PVA对话流程中,添加查找Viva主题动作,通过话题名称(如
配置自适应卡片话题标签
- 在PVA的消息编辑器中插入自适应卡片,使用变量替换将话题标签与Viva主题绑定。示例卡片文本:
相关话题:<at id="@TopicID">#@TopicName</at> - 利用PVA的Teams原生集成能力,发送卡片后即可触发悬停显示Viva主题卡片的效果。
- 若需要更自定义的卡片样式,可通过PVA的调用自定义连接器动作,直接调用Graph API获取主题数据,再手动构建自适应卡片的实体关联。
- 在PVA的消息编辑器中插入自适应卡片,使用变量替换将话题标签与Viva主题绑定。示例卡片文本:
注意事项
- 仅当用户拥有对应Viva主题的访问权限时,悬停卡片才会正常显示内容。
- 确保Graph API调用的身份验证流程正确(Bot Framework使用应用身份验证,PVA使用连接器授权)。
内容的提问来源于stack exchange,提问作者CrackerBarrelKid55
相关产品推荐
相关产品推荐

