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

Google Sheet调用Twilio发短信脚本手动正常触发器执行失败如何解决

问题排查与修复方案

问题根本原因

手动运行脚本时,你当前打开的就是存储收件人号码、短信内容的工作表,getActiveSheet() 可以正确读取到目标数据;但时间触发器是后台静默运行,不存在「当前激活的工作表」上下文,getActiveSheet() 会默认读取整个表格文件的第一个工作表,如果你的目标数据不在第一个工作表,就会读取到空值,导致Twilio请求中的To参数为空,触发报错中的21211错误。

修复步骤

  • 将getActiveSheet()替换为按固定名称/ID获取工作表,完全规避上下文差异带来的取值错误
  • 增加空值校验逻辑,读取到无效的收件人号码时直接跳过,不发起无效请求
  • 确认所有存储的收件人号码都带国家码前缀,符合Twilio的号码格式要求
  • 可选增加调试日志,后续如果出现问题可以直接查看日志确认参数取值是否正常

修改后可用代码

function RunThisToSendTexts() {
  function sendSms(to, body) {
    var messagesUrl = "https://api.twilio.com/2010-04-01/Accounts/AC9837381a431941024fc87xxxxxx/Messages.json";
    var payload = {
      "To": to,
      "Body" : body,
      "From" : "+197131999xx"
    };
    var options = {
      "method" : "post",
      "payload" : payload
    };
    options.headers = {   
      "Authorization" : "Basic " + Utilities.base64Encode("AC9837381a431941024fcxxxxxxx:22c7dec97dee0cef39exxxxxxx")
    };
    UrlFetchApp.fetch(messagesUrl, options);
  }
 
  function sendAll() {
    // 把这里的「短信数据」替换成你实际存储数据的工作表名称
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("短信数据");
    var startRow = 2; // First row of data to process
    var numRows = sheet.getLastRow() - 1;
    // 先判断有没有数据,避免无数据时报错
    if(numRows < 1) return;
    var dataRange = sheet.getRange(startRow, 1, numRows, 2)
    var data = dataRange.getValues();
    for (i in data) {
      var row = data[i];
      var toNum = row[0] ? row[0].toString().trim() : "";
      var content = row[1] ? row[1].toString().trim() : "";
      // 号码或者内容为空直接跳过
      if(!toNum || !content) {
        sheet.getRange(startRow + Number(i), 3).setValue("参数为空");
        continue;
      }
      try {
        response_data = sendSms(toNum, content);
        status = "sent";
      } catch(err) {
        Logger.log(err);
        status = "error";
      }
      sheet.getRange(startRow + Number(i), 3).setValue(status);
    }
  }
  sendAll();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:48:05