作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些代码需要帮助。
现在,当我运行脚本时,无论状态是空白还是设置为已发送,它都会触发。我需要确保脚本不会多次运行 SENT 行。
我不是 Google Apps 脚本方面的专家,也不想破坏脚本的功能。
function sendSms(to, body) {
var messages_url = "https://api.twilio.com/2010-04-01/Accounts/MY_ID/Messages.json";
var payload = {
"To": to,
"Body" : body,
"From" : "+1PHONENUMBER"
};
var options = {
"method" : "post",
"payload" : payload
};
options.headers = {
"Authorization" : "Basic " + Utilities.base64Encode("MY_API:MY_API_TOKEN")
};
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, 2)
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
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);
}
}
function myFunction() {
sendAll();
}
最佳答案
发送
时运行sendSms()
。如果我的理解是正确的,这个修改怎么样?本次修改修改了sendAll()
函数。
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);
}
}
}
如果这不是您想要的结果,我深表歉意。届时,为了正确了解您的情况,能否提供一份示例Spreadsheet来复现您的情况?据此,我想修改脚本。
关于javascript - Google 脚本 - Google 表格 - 需要修改脚本以跳过任何具有匹配变量的文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55172640/
我想开发一个 Skype 机器人,它将用户名作为输入,并根据用户输入以相反的字符大小写表示hello username。简而言之,如果用户输入他的名字 james,我的机器人会回复他为 Hello J
我是一名优秀的程序员,十分优秀!