Javascript 谷歌脚本-短信文本脚本的延迟循环

Javascript 谷歌脚本-短信文本脚本的延迟循环,javascript,arrays,loops,google-apps-script,google-sheets,Javascript,Arrays,Loops,Google Apps Script,Google Sheets,当我向卖家发出购买物品的请求时,我达到了承运商的限制 每分钟15-60封邮件,每天不超过200个唯一收件人 如果我的脚本电子表格中有200-500个联系人,我如何遵守以下准则 function sendSms(to, body) { var messages_url = "https://api.twilio.com/2010-04-01/Accounts/MYAPIKEY/Messages.json"; var payload = { "To": to, "Body"

当我向卖家发出购买物品的请求时,我达到了承运商的限制

每分钟15-60封邮件,每天不超过200个唯一收件人

如果我的脚本电子表格中有200-500个联系人,我如何遵守以下准则

function sendSms(to, body) {
  var messages_url = "https://api.twilio.com/2010-04-01/Accounts/MYAPIKEY/Messages.json";

  var payload = {
    "To": to,
    "Body" : body,
    "From" : "+1PHONENUMBER"
  };

  var options = {
    "method" : "post",
    "payload" : payload
  };

  options.headers = { 
    "Authorization" : "Basic " + Utilities.base64Encode("MYAPIKEY:MYAUTHTOKEN")
  };

  UrlFetchApp.fetch(messages_url, options);
}

function sendAll() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; 
  var numRows = sheet.getLastRow() - 1; 
  var dataRange = sheet.getRange(startRow, 1, numRows, 3); // Modified
  var data = dataRange.getValues();

  for (i in data) {
    var row = data[i];
    if (row[2].toLowerCase() != "sent") { // Added
      try {
        response_data = sendSms(row[0], row[1]);
        status = "sent";
      } catch(err) {
        Logger.log(err);
        status = "error";
      }
      sheet.getRange(startRow + Number(i), 3).setValue(status);
    }
  }
}

谢谢你的帮助

这保证了每分钟少于15个收件人,如果您将200个或更少的收件人放在以一周中的几天命名的表格上(即星期日、星期一、星期二、星期三、星期四、星期五、星期六)。事实上,你可以给他们取任何你想要的名字,并在同一周内再次使用这些名字,只要你在任何一张纸上的收件人少于200人,那么你就可以限制自己每天的最大数量

function sendAll() {
  var shA=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];//sheet names
  var sheet = SpreadsheetApp.getActive().getSheetByName(shA[new Date().getDay()])
  var startRow = 2; 
  var numRows = sheet.getLastRow() - 1; 
  var dataRange = sheet.getRange(startRow, 1, numRows, 3); // Modified
  var data = dataRange.getValues();

  for (i in data) {
    var row = data[i];
    if (row[2].toLowerCase() != "sent") { // Added
      try {
        response_data = sendSms(row[0], row[1]);
        status = "sent";
      } catch(err) {
        Logger.log(err);
        status = "error";
      }
      sheet.getRange(startRow + Number(i), 3).setValue(status);
      Utilities.sleep(4000);//4 seconds
    }
  }
}