You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

外部应用与MS Teams双向通信的Bot集成开发技术咨询

MS Teams与外部Web应用双向集成实现方案

核心方案选择

采用Azure Bot + MS Graph API组合,解决多团队场景下无需重复配置的问题,同时满足双向通信需求。

一、Bot基础配置(必做步骤)

  • 注册Azure Bot:在Azure门户创建Bot资源,选择"Teams"作为目标渠道,记录Bot的应用ID和客户端密码。
  • 关联Azure AD应用:Bot会自动关联一个Azure AD应用注册,后续权限配置在此应用中操作。
  • 设置消息端点:配置Bot的消息接收端点(需为公网可访问地址,本地调试可使用ngrok映射)。
  • 添加Bot到目标团队:通过Teams应用商店或直接分享链接,将Bot添加到需要集成的所有团队中。

二、外部Web应用→Teams频道:分享资讯实现

1. 获取用户所属团队及频道列表

用户在Web应用点击"分享"后,调用MS Graph API获取可选的目标团队和频道:

  • 调用GET /me/joinedTeams获取用户加入的所有团队(需用户授权,或使用应用权限获取团队列表)。
  • 对每个团队,调用GET /teams/{team-id}/channels获取该团队下的所有频道。
  • 将团队和频道列表展示给用户选择。

2. 发送资讯到指定频道

选择目标频道后,通过MS Graph API让Bot发送消息:

  • 配置权限:在Azure AD应用注册中添加ChannelMessage.Send应用权限(管理员同意后,无需用户每次授权)。
  • 获取应用令牌:通过Bot的应用ID和密码,调用Azure AD令牌端点获取Graph API的应用令牌。
  • 发送消息请求:
    POST https://graph.microsoft.com/v1.0/teams/{teamId}/channels/{channelId}/messages
    Authorization: Bearer {access-token}
    Content-Type: application/json
    
    {
      "body": {
        "content": "**分享资讯**:[外部应用资讯标题](https://your-webapp-url.com/news/123)\n资讯摘要:这是对团队有价值的内容..."
      }
    }
    
    支持发送富文本、自适应卡片等格式,提升资讯展示效果。

三、Teams→外部Web应用:内容同步实现

1. 监听Bot的@提及消息

在Bot的消息处理逻辑中,识别团队成员@Bot的消息:

  • 在OnMessageActivityAsync方法中,检查消息的Entities集合,判断是否包含指向当前Bot的Mention实体。
  • 提取消息文本时,可移除@Bot的标记,保留用户实际发送的内容。

2. 同步内容到外部Web应用

将提取到的消息内容同步到外部Web应用:

  • 调用外部Web应用提供的API接口,传递以下信息:消息内容、发送用户ID/名称、所属团队ID/名称、频道ID/名称。
  • 示例C#代码片段:
    var messageContent = activity.Text.Replace($"<at>{botName}</at>", "").Trim();
    var syncPayload = new {
        Content = messageContent,
        Sender = activity.From.Name,
        TeamId = activity.Conversation.TeamId,
        ChannelId = activity.Conversation.ChannelId
    };
    // 调用Web应用API
    using var client = new HttpClient();
    await client.PostAsJsonAsync("https://your-webapp-url.com/api/teams-sync", syncPayload);
    

关键注意事项

  • 权限管理:应用权限需租户管理员同意,确保Bot能跨团队发送消息;委派权限适合单个用户场景。
  • 本地调试:使用ngrok将本地Bot端点映射为公网地址,便于测试Teams消息接收。
  • 消息格式:可使用Teams自适应卡片构建更丰富的分享内容,提升用户体验。

内容的提问来源于stack exchange,提问作者Shasshank Rana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:30:58