You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

通过Webhook发送的消息卡片中Teams会议链接无法正常跳转的问题

解决Teams Webhook消息卡片中会议链接无法正常跳转的问题

问题原因

Teams会对卡片内的会议链接执行特殊身份校验,当识别为Webhook发起的会议跳转请求时,由于Webhook无对应的机器人身份,会触发“此机器人已禁用”的拦截提示。

可行解决方案

1. 改用Markdown文本链接替代卡片组件链接

在消息内容中直接使用Markdown格式的链接,而非卡片内置的链接组件,Teams会直接解析为普通可跳转链接,不会触发机器人校验逻辑。

示例PowerShell代码:

$webhookUrl = "你的Teams Webhook地址"
$messageContent = @{
    text = "请参与会议:[点击加入Teams会议](https://teams.microsoft.com/l/meetup-join/xxx)"
} | ConvertTo-Json

Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $messageContent -ContentType "application/json"

2. 为会议链接添加中转跳转层

如果必须通过卡片组件展示链接,可以将Teams会议链接包装到一个简单的中转HTML页面中,页面加载后自动重定向到会议地址。卡片中使用中转页面的URL,Teams会识别为普通网页链接,绕过特殊校验。

示例中转页面代码(保存为meeting-redirect.html):

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="refresh" content="0; url='https://teams.microsoft.com/l/meetup-join/xxx'">
</head>
<body>
    正在跳转至会议... 若未自动跳转,请<a href="https://teams.microsoft.com/l/meetup-join/xxx">点击此处</a>
</body>
</html>

将该页面部署到可公开访问的服务器后,把卡片内的链接替换为该页面的访问地址即可。

3. 为Adaptive Cards的OpenUrl动作添加目标属性

在Adaptive Cards的Action.OpenUrl中添加target="_blank"属性,强制链接在新窗口打开,绕过Teams内部的机器人校验机制。

示例Adaptive Cards片段:

{
    "type": "AdaptiveCard",
    "version": "1.4",
    "body": [
        {
            "type": "TextBlock",
            "text": "请参加本次会议"
        }
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "加入会议",
            "url": "https://teams.microsoft.com/l/meetup-join/xxx",
            "target": "_blank"
        }
    ]
}

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

火山引擎 最新活动