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

使用Bolt框架在Slack消息中同时提及应用与频道的问题

解决Slack消息中Bot提及不生效的问题

问题原因

你代码里的Bot提及用了HTML转义字符&lt;和&gt;,Slack API的text参数需要原生的<@用户ID>格式,转义后的内容会被当成普通文本,无法识别为提及。另外要确认Bot账号已经加入目标频道,否则即使格式正确也不会触发通知。

修复现有WebClient代码

把转义的字符替换成实际的尖括号,修改后的代码如下:

def respond_slack(name, location="Placeholder"):
    channel_id = ourOfficeChannel     # 目标频道ID
    slack_token = os.environ["SLACK_BOT_TOKEN"]
    slackClient = WebClient(token=slack_token)
    try:
        result = slackClient.chat_postMessage(
            channel=channel_id,
            text='<@U041Z8F0TGE> <!channel> Somebody is downstairs!'
        )
        print(result)
    except SlackApiError as e:
        print(f"Error: {e}")

切换到Bolt框架的实现(符合你的扩展需求)

如果你要迁移到Bolt框架,下面是适配Lambda的简化写法,同样确保提及格式正确:

from slack_bolt import App
from slack_bolt.adapter.aws_lambda import SlackRequestHandler
import os

# 初始化Bolt应用
app = App(token=os.environ["SLACK_BOT_TOKEN"])

def respond_slack(name, location="Placeholder"):
    channel_id = ourOfficeChannel     # 目标频道ID
    try:
        # 发送消息
        app.client.chat_postMessage(
            channel=channel_id,
            text='<@U041Z8F0TGE> <!channel> Somebody is downstairs!'
        )
    except SlackApiError as e:
        print(f"Error: {e}")

# Lambda处理入口
def lambda_handler(event, context):
    SlackRequestHandler.clear_all_log_handlers()
    return SlackRequestHandler.handle(app, event, context)

额外检查项

  • 确认U041Z8F0TGE是你的Bot用户ID(不是App ID),可以在Slack工作区的Bot设置里查看。
  • 确保Bot已经被邀请到ourOfficeChannel对应的频道中,否则无法在该频道发送消息或触发提及通知。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:48:14