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

如何通过API在Slack Canvas中程序化提及/标记用户?

Slack Canvas API实现可点击用户提及的解决方案

核心结论

Slack Canvas的Markdown解析器不兼容普通频道消息的<@UXXXX>提及语法,必须使用Canvas专属的富文本(rich_text)结构才能创建可点击的用户提及。

问题原因

  • 你尝试的<@U1234567890>是Slack频道消息的提及语法,Canvas的Markdown解析器不会将其解析为可交互的用户链接,只会显示为纯文本。
  • 之前使用rich_text类型时触发invalid_arguments错误,是因为没有遵循Canvas富文本的正确结构规范。

正确实现方式

使用rich_text类型的document_content,按照Canvas富文本的元素结构构建用户提及。以下是修正后的canvases.edit请求体示例:

{
  "canvas_id": "F1234567890",
  "changes": [
    {
      "operation": "replace",
      "document_content": {
        "type": "rich_text",
        "rich_text": {
          "elements": [
            {
              "type": "text",
              "text": "User: "
            },
            {
              "type": "user",
              "user_id": "U1234567890"
            }
          ]
        }
      }
    }
  ]
}

关键注意事项

  • 确保机器人已拥有users:read(用于获取目标用户ID)和canvases:write权限
  • 使用@slack/web-api库时,直接构造上述JSON结构即可,无需额外转义字符
  • 可以先通过conversations.canvases.create接口创建带提及的Canvas,验证格式正确性后再复用结构到canvases.edit

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:38:27