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

无需Zapier等付费工具,如何自动同步Slack消息至Google Sheet?

实现Slack新消息自动同步到Google Sheet的方案

步骤1:配置Slack Event API

  • 登录Slack开发者平台,创建新App并关联目标工作区
  • 在Event Subscriptions中开启事件订阅,先预留请求URL位置(后续用Google Apps Script部署URL填充)
  • 订阅工作区事件:添加message.channels(针对公开频道)或message.groups(针对私有频道),确保权限范围包含channels:history、groups:history
  • 将App安装到目标工作区,完成权限授予

步骤2:编写Google Apps Script

打开目标Google Sheet,点击扩展程序 > Apps Script,替换默认代码为以下内容:

function doPost(e) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const payload = JSON.parse(e.postData.contents);
  
  // 处理Slack的URL验证请求
  if (payload.type === 'url_verification') {
    return ContentService.createTextOutput(payload.challenge);
  }
  
  // 可选:过滤机器人发送的消息
  if (payload.event.bot_id) return;
  
  // 提取消息核心信息
  const timestamp = new Date(payload.event.ts * 1000);
  const userId = payload.event.user;
  const messageText = payload.event.text;
  const channelId = payload.event.channel;
  
  // 将数据追加到Sheet末尾,可按需调整列顺序
  sheet.appendRow([timestamp, userId, channelId, messageText]);
  
  return ContentService.createTextOutput('同步成功');
}
  • 保存脚本后,点击部署 > 新部署,选择部署类型为Web应用,权限设置为「任何人,甚至匿名」,部署后复制生成的Web URL

步骤3:完成Slack配置闭环

回到Slack开发者平台的Event Subscriptions页面,将复制的Web URL粘贴到Request URL,验证通过后保存所有设置

可选优化方向

  • 调用Slack的users.info接口获取用户昵称(需在Slack App中添加users:read权限,并在脚本中补充请求逻辑)
  • 对消息内容做格式化处理,比如解析表情、转换链接显示格式
  • 添加日志记录,用Logger.log()捕获同步异常便于排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:00:31