如何实现Teams自定义应用在通话/聊天页向用户推送通知?
实现Teams聊天/通话选项卡内的外部数据通知方案
方法1:基于Teams Bot发送个人通知
- 注册并关联Teams Bot到你的自定义应用,当外部系统检测到新数据时,通过Bot主动向目标用户发送个人聊天消息。消息内容里可直接带上打开自定义应用个人选项卡的深层链接,用户点击就能跳转查看数据。
- 深层链接格式示例:
https://teams.microsoft.com/l/entity/{你的应用ID}/{个人选项卡实体ID}?context={"subEntityId":"","channelId":""},替换占位符为你应用的实际参数即可。
- 深层链接格式示例:
- 外部系统可通过Webhook触发Bot的消息发送逻辑,比如新数据生成时调用Bot的消息接口,实现通知自动化。
方法2:利用Microsoft Graph API推送活动源通知
- 通过Graph API的
teamsActivityNotifications端点,向用户的Teams活动中心推送通知。通知会出现在Teams顶部的通知铃铛里,点击后直接跳转至你的自定义应用页面。- 核心操作:
- 为应用申请
TeamSettings.ReadWrite.All或对应权限; - 构造通知Payload,指定
targetUrl为自定义应用的深层链接,填充新数据相关的标题和描述; - 外部系统触发新数据事件时,调用该API完成通知推送。
- 为应用申请
- 核心操作:
方法3:前端实时监听+未读标记提示
- 如果你的自定义应用在Teams侧边栏或后台标签页保持运行,可通过WebSocket或Server-Sent Events(SSE)让前端实时监听外部系统的数据更新。
- 监听到新数据后,在聊天/通话界面的自定义应用入口图标上添加未读数字标记,或者调用Teams的
notification.alert()API弹出桌面通知(需用户授权),引导用户返回应用查看。
关键注意事项
- 严格遵循Teams通知规范,避免过度推送,可提供用户关闭特定通知的设置选项;
- 验证深层链接的正确性,确保跳转路径直接指向包含新数据的页面;
- Bot和Graph API的调用需通过Azure AD OAuth 2.0完成身份验证,保障请求安全。
内容的提问来源于stack exchange,提问作者user2017240
相关产品推荐
相关产品推荐

