Slack SDK:如何为Blocks添加类似Attachments的左侧颜色条
为Slack Blocks模拟Attachments左侧颜色条
Slack Blocks没有原生的左侧颜色条属性,但可以通过Columns布局结合纯色小图片来模拟Attachments的color效果,同时保留Blocks对文件URL的正常渲染能力。
实现方式
准备纯色小图片的Base64编码(避免外链,加载更稳定):
- 红色(错误状态):
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAADFJREFUKFNj/P//PwOtARMDHQBdLGFBYtMq3BiHT3DRPU4YR4NrNAmPJuHRJDyahEeT8Ii3BCDAAA7UUpfdW5uQAAAAASUVORK5CYII= - 绿色(成功状态):
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5gMVESkqQzkfSwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAUSURBVBjTY2RgYNgHxGAAYuwAAVA8AAE3gAA4egAABS0AAAdmwAAOvsAAIdvgAA3egAAOvwAAJtvgAA3ewAAOvwAAJtvAAAAAElFTkSuQmCC
- 红色(错误状态):
用Columns块组合色条和内容:
根据errors变量动态切换色条颜色,右侧区块放置带文件链接的任务内容:
# 动态选择色条的Base64编码 color_bar = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAADFJREFUKFNj/P//PwOtARMDHQBdLGFBYtMq3BiHT3DRPU4YR4NrNAmPJuHRJDyahEeT8Ii3BCDAAA7UUpfdW5uQAAAAASUVORK5CYII=" if errors else "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5gMVESkqQzkfSwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAUSURBVBjTY2RgYNgHxGAAYuwAAVA8AAE3gAA4egAABS0AAAdmwAAOvsAAIdvgAA3egAAOvwAAJtvgAA3ewAAOvwAAJtvAAAAAElFTkSuQmCC" # 构建Blocks blocks = [ { "type": "columns", "columns": [ { "type": "section", "text": {"type": "mrkdwn", "text": f""} }, { "type": "section", "text": { "type": "mrkdwn", "text": "任务输出内容\n文件链接:<https://example.com/your-file.pdf|点击查看>" } } ] } ] # 直接发送blocks,无需嵌套在attachments中
注意事项
- 调整Base64图片的尺寸可以改变色条的高度和宽度,适配不同的内容长度
- Slack对Base64图片的支持稳定,不会出现外链加载失败的问题
- 这种布局完全兼容Blocks的所有组件,包括文件链接、按钮等交互元素
内容的提问来源于stack exchange,提问作者Muhammad Magdi Youssif
相关产品推荐
相关产品推荐

