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

如何用Google Script通过多个Slack webhook发DM并解决参数报错

问题修复方案

报错的核心原因是:UrlFetchApp.fetch()仅支持单次传入1个合法的Slack webhook URL,你当前将多个URL拼接成了带方括号的字符串传入,属于非法参数。同时代码中直接拼接二维数组格式的linkticket变量,也会导致消息展示异常。


修改后完整可运行代码

function sendSlackDMMultiUsers() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ji = ss.getSheetByName('Mailer');
  // 调整为纯数组格式存储所有目标用户的webhook地址
  var webhookList = [
    "https://hooks.slack.com/services/XXXXX",
    "https://hooks.slack.com/services/YYYYY"
  ];
  var total_ticket = ji.getRange("C2").getValue();
  var status = ji.getRange("C1").getValue();
  // 格式化链接数据为Slack支持的markdown格式,避免输出数组结构
  var linkticket = ji.getRange(3,4,ji.getLastRow()-2,1).getValues()
    .flat()
    .map(link => `<${link}|Ticket Link>`)
    .join(", ");

  var payload = {
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": ":bell: *Pending Ticket* :bell:"
        }
      },
      {
        "type": "divider"
      },
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text":
              "Hi Leaders,\n\n"+ 
              "There are " + total_ticket + " tickets pending. Kindly check these tickets: " + linkticket
        }
      }
    ]  
  };

  var params = {
    "method": "post",
    "contentType": "application/json",
    "payload": JSON.stringify(payload)
  };

  if(status == 'Yes') {
    // 普通循环逐个发送,逻辑简单易调试
    webhookList.forEach(hookUrl => {
      UrlFetchApp.fetch(hookUrl, params);
    });
    
    // 【可选更高性能方案】批量发送,替换上面的循环即可
    // var requests = webhookList.map(hookUrl => ({...params, url: hookUrl}));
    // UrlFetchApp.fetchAll(requests);
  }
}

核心修改说明

  • 将多个webhook地址存为纯数组格式,而非带方括号的字符串
  • 对linkticket做格式化处理,转换成Slack支持的markdown链接格式,避免输出异常的数组结构内容
  • 遍历webhook数组逐个发送请求,也可以选择fetchAll批量发起请求,提升运行效率
  • 补充了函数定义,避免代码运行时找不到入口的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:39:03