microsoft botframework bot 如何在自适应卡片中提及用户?

Posted

技术标签:

【中文标题】microsoft botframework bot 如何在自适应卡片中提及用户?【英文标题】:How can a microsoft botframework bot mention a user in an adaptivecard? 【发布时间】:2020-12-09 18:34:43 【问题描述】:

根据adaptivecards.io 上的架构浏览器,没有可用于提及用户的机器人的架构(团队向他发送适当的通知,说明他后来被提及)。

参考https://adaptivecards.io/explorer/。

我们希望使用机器人主动向用户发送消息。如果用户在其他解决方案中被提及,我们希望将该提及事件转移到团队频道对话中,并利用团队的能力适当地通知用户。

问题:有没有办法使用自适应卡片在机器人消息中向频道成员添加有效的团队 @提及?

【问题讨论】:

【参考方案1】:

可以根据此文档在 AdaptiveCards 中提及用户:https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-format?tabs=adaptive-md%2Cconnector-html#mention-support-within-adaptive-cards

要在自适应卡片中包含提及,您的应用需要包含以下元素

用户名在支持的自适应卡片元素中 卡片内容中 msteams 属性内的提及对象,其中包括被提及用户的 Teams 用户 ID

提及对象与此类似:


"msteams": 
    "entities": [
        "type": "mention",
        "text": "<at>John Doe</at>",
        "mentioned": 
            "id": "8:orgid:org-ID-of-the-user",
            "name": "John Doe"
        
    ]

提及用户的 ID 需要采用以下格式:8:orgid:org-ID-of-the-user

【讨论】:

链接参考中的示例使用了这个,不确定从哪里获取该 ID:"mentioned": "id": "29:123124124124", "name": "John Doe" 试了一下,结果如下: 1) 提到的高亮在team桌面上符合预期(蓝色“Bernd Gewehr”),而team mobile显示为蓝色"@Bernd Gewehr" 2) 当您将鼠标悬停在提到的用户上时,两者都不会显示他们的名片。 3) 提及的用户没有收到通知,也没有像正常提及那样在应用程序中看到提及提示。我还缺少什么吗? 当我使用来自smba.trafficmanager.net/emea/v3/conversationschannelId/members 的 29:userId 时,用户正确突出显示,有名片并得到正确通知。现在我们应该如何在我们的中心用户群中适当地处理这些 ID?有这方面的文档吗?

以上是关于microsoft botframework bot 如何在自适应卡片中提及用户?的主要内容,如果未能解决你的问题,请参考以下文章

Bot Framework:如何退出对话?

在 microsoft bot 框架上使用 webchat 获取 403 Forbidden

Bot Framework 发送不必要的错误消息

Microsoft.Bot.Connector - 收件人地址指的是未知的

使用 Bot Framework 通过 NodeJS 发布到 Microsoft Teams 频道

BotFramework中的onMembersAdded、onMembersAddedActivity、onTeamsMembersAdded有啥区别?