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

如何通过slackbot发送PNG图片?仅持有base64编码PNG字符串无图片URL

基于Node.js将Base64格式PNG通过Slackbot发送的实现方案

Slack官方提供的files.upload接口支持直接传递二进制文件流完成上传,无需提前准备可访问的图片URL,具体实现步骤如下:

步骤1:将Base64字符串转换为Node.js Buffer

首先需要移除Base64字符串的前缀标识,再转换为Buffer类型:

// 此处替换为你实际拿到的base64编码PNG字符串
const originBase64Str = '你的base64 PNG字符串';
// 移除data URI前缀
const pureBase64 = originBase64Str.replace(/^data:image\/png;base64,/, '');
// 转换为Buffer
const pngBuffer = Buffer.from(pureBase64, 'base64');

步骤2:安装并初始化Slack官方SDK

使用Slack官方提供的@slack/web-api包完成调用,先执行安装命令:
npm install @slack/web-api

步骤3:调用上传接口发送图片

调用files.upload接口直接传递Buffer即可完成图片发送:

const { WebClient } = require('@slack/web-api');

// 初始化Slack客户端,替换为你自己的Bot Token(xoxb开头)
const slackClient = new WebClient('你的Bot Token');

const sendPngToSlack = async () => {
  await slackClient.files.upload({
    // 传入转换好的PNG Buffer
    file: pngBuffer,
    // 自定义上传后显示的文件名
    filename: 'custom-upload.png',
    // 填写目标发送的频道ID/用户ID
    channels: '目标ID',
    // 可选:附带的文字说明
    initial_comment: '图片附件说明'
  })
};

sendPngToSlack();

注意事项

  • 发送前需要确认Slack Bot已经开通files:write权限,权限修改后需要重新将Bot安装到工作区才会生效
  • 如果发送目标为公开/私有频道,需要提前将Bot邀请到对应频道,否则会触发权限报错
  • 如果你的Base64对应其他图片格式,需要将第一步正则匹配中的image\/png替换为对应的格式标识

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:54:03