我正在尝试构建一个简单的应用,以便针对Google电子表格中的每个新行向Slack发布消息。我可以从工作表中获取信息并将其发布到记录器,也可以发布到Slack,但是我似乎只能使它与循环的第一行一起工作(而记录器将接收所有行的所有值) )。我可能只是弄乱了循环的工作方式(这是新手),但是凝视了几个小时,现在我看不到它。我的意图是将其设置为在编辑时触发(它是从Google表单填充的),因此我添加了一个列来标记何时发送了Slack消息,只是为了避免由于各种原因而产生的无休止的疯狂循环。] >
我已经尝试记录输出,并且可以在那里获取所有值。不过,将帖子放置在代码的Slack部分的同一位置只会导致一篇帖子。
//Set up a variable to show when we've sent a message to Slack var slackSentText = "Yes"; //This is hte Slack hook var url = "https://hooks.slack.com/services/tokens!"; function getNewInfo() { var sheetname = "Info" var myspreadsheet = SpreadsheetApp.openById('secretID!'); var sheet = myspreadsheet.getSheetByName(sheetname); // set rows until work out how to do more elegantly... var startRow = 8; // First row of data to process var numRows = 5; // Number of rows to process var dataRange = sheet.getRange(startRow, 1, numRows, 11); var data = dataRange.getValues(); // iterate and make variables for Slack for (var i = 0; i < data.length; ++i) { var row = data[i]; var idNumber = row[0]; var projectType=row[6]; var supplierName=row[2]; var projectName=row[3]; var projectDescription=row[4]; var projectStatus=row[1]; var projectDate=row[5]; var slackSent = row[10]; // check if column is marked with Slack sent note and if so ignore. If not send Slack if (slackSent !== slackSentText) { // Slack bit var slackMessage = { "channel": "ID-number-bot", "username": "ID-bot", "text": "\n :white_check_mark:" + "\n *New Project:* " + idNumber + "\n *Project Name:* " + projectName + "\n *Supplier:* " + supplierName + "\n *Project Status:* " + "["+projectStatus+"]" + "\n *Project Description:* " + "_"+projectDescription+"_" + "\n *Project Type:* " + projectType + "\n *Estimated Delivery Date:* " + projectDate + "\n"+ slackSent + "\n Job folder string: \n" + "RCM "+jobNumber+" "+projectName + "\n \n" }; var options = { "method": "post", "contentType": "application/json", "payload": JSON.stringify(slackMessage) }; return UrlFetchApp.fetch(url,options); sheet.getRange(startRow + i, 11).setValue(slackSentText); Logger.log("jobNumber:"+jobNumber) Logger.log("projectType:"+projectType) Logger.log("supplierName:"+supplierName) Logger.log("projectName:"+projectName) Logger.log("projectDescription:"+projectDescription) Logger.log("projectStatus:"+projectStatus) Logger.log("projectDate:"+projectDate) } } // SpreadsheetApp.flush(); }
非常感谢大家。希望我已经提供了足够的信息。
我正在尝试构建一个简单的应用,以便针对Google电子表格中的每个新行向Slack发布消息。我可以从工作表中获取信息并将其发布到记录器,也可以发布到Slack,但是我可以...
按照@Tanaike的建议,您的问题应通过更改来解决: