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

如何通过Slack API发布图片实现画廊视图而非垂直排列展示

Slack API发布多图实现画廊视图的解决方案

要实现和Slack客户端发图一致的画廊布局,需要按以下步骤操作:

  • 第一步:先将所有需要发布的图片通过files.upload接口上传到Slack服务器,上传时不要填写channels参数,避免文件被直接单独发送到频道。上传成功后你会得到每个图片对应的唯一file_id。
  • 第二步:调用chat.postMessage接口发送消息时,将所有图片的file_id按顺序放到请求参数的files数组中即可。

注意不要将图片URL放到消息文本、attachments或blocks的图片组件中,该方式只会渲染为垂直排列的独立图片,无法触发画廊效果。

注意事项

  • 确保你的Slack应用已经申请了files:write权限,否则无法完成文件上传操作。
  • 同一个画廊的所有图片必须在同一次chat.postMessage请求的files参数中传入,分开多次调用接口发送的图片会独立展示,不会合并为画廊。
  • 你可以在上传文件时通过initial_comment参数为单张图片添加备注,也可以在chat.postMessage的text参数中添加整体消息说明,不会影响画廊的渲染效果。

代码示例(Node.js)

const { WebClient } = require('@slack/web-api');
const token = '你的Slack Bot Token';
const client = new WebClient(token);

async function sendGalleryMessage(channelId, imagePaths) {
  // 1. 批量上传图片获取file_id
  const fileIds = [];
  for (const path of imagePaths) {
    const uploadRes = await client.files.upload({
      file: require('fs').createReadStream(path),
    });
    fileIds.push(uploadRes.file.id);
  }

  // 2. 发消息关联所有图片,触发画廊效果
  await client.chat.postMessage({
    channel: channelId,
    text: '这是带画廊的消息',
    files: fileIds
  });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:39:00