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

能否在Microsoft Teams一对一机器人聊天中@其他用户?

一对一聊天场景下Teams机器人@用户的实现方案

在一对一聊天场景中,Teams原生不支持直接通过@username触发用户标记,但可以通过以下几种方式实现类似效果,同时确保能唯一识别目标用户:

1. 构造Mention对象发送带@标记的消息

利用Bot Framework的Mention类,手动构造包含用户身份信息的@消息,发送后用户会收到@提醒,且机器人能通过消息实体解析出用户ID。

示例代码(.NET 8):

// 假设已获取目标用户的User ID(可通过Graph API或用户输入匹配获取)
var targetUserId = "目标用户的Object ID";
var targetUserName = "目标用户名";

// 创建Mention实例
var mention = new Mention
{
    Mentioned = new ChannelAccount { Id = targetUserId, Name = targetUserName },
    Text = $"<at>{targetUserName}</at>"
};

// 构造回复消息
var replyMessage = Activity.CreateReply(turnContext.Activity);
replyMessage.Text = $"你提到了 {mention.Text}";
// 将Mention加入消息实体,确保Teams识别为有效@标记
replyMessage.Entities.Add(mention);

await turnContext.SendActivityAsync(replyMessage, cancellationToken);

2. 结合Microsoft Graph API实现用户搜索与标记

如果机器人需要主动搜索用户,可调用Microsoft Graph API的/users接口搜索目标用户,获取其Object ID后再构造Mention消息:

  1. 通过Teams Toolkit为机器人配置User.ReadBasic.All权限(需管理员同意);
  2. 在代码中使用Graph SDK调用搜索接口:
// 初始化Graph客户端(需配置机器人身份验证)
var graphClient = new GraphServiceClient(new DefaultAzureCredential());
// 根据用户名搜索用户
var users = await graphClient.Users
    .Request()
    .Filter($"displayName eq '{userInputName}'")
    .Select(u => new { u.Id, u.DisplayName })
    .GetAsync();

if (users.Any())
{
    var targetUser = users.First();
    // 后续构造Mention消息的逻辑同方法1
}

3. 用自适应卡片实现交互式@用户

通过自适应卡片的输入组件让用户选择或输入目标用户,卡片提交后机器人解析用户信息并生成带@标记的回复:
示例自适应卡片JSON(可嵌入到消息中):

{
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "Input.Text",
            "id": "targetUserName",
            "placeholder": "输入要@的用户名"
        }
    ],
    "actions": [
        {
            "type": "Action.Submit",
            "title": "发送@消息"
        }
    ]
}

机器人收到卡片提交后,提取输入的用户名,通过Graph API匹配用户ID,再发送带Mention的消息。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:58:18