Javascript 谷歌脚本-短信文本脚本的延迟循环
当我向卖家发出购买物品的请求时,我达到了承运商的限制 每分钟15-60封邮件,每天不超过200个唯一收件人 如果我的脚本电子表格中有200-500个联系人,我如何遵守以下准则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"
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
}
}
}