Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在批量404 URL检查器的列表上安排每小时一次的检查?_Url_Google Apps Script_Google Sheets - Fatal编程技术网

如何在批量404 URL检查器的列表上安排每小时一次的检查?

如何在批量404 URL检查器的列表上安排每小时一次的检查?,url,google-apps-script,google-sheets,Url,Google Apps Script,Google Sheets,我正试图建立一个谷歌表单,检查URL列表(大约30个)的响应。我希望每小时都安排一次。检查URL响应的时间并不重要,但最好是每60分钟检查一次,并且在我不访问电子表格时(即脱机)也能正常工作 我对使用GoogleSheets脚本编辑器非常陌生,所以仍然在努力掌握它。 我使用了下面的脚本。在脚本编辑器中,我执行了以下操作: 编辑>项目触发器>添加触发器 选择函数>HTTP响应 偶数源>时间驱动 选择基于时间的触发器类型>小时计时器 我希望上面的设置每小时更新一次URL检查……但它们似乎只有在

我正试图建立一个谷歌表单,检查URL列表(大约30个)的响应。我希望每小时都安排一次。检查URL响应的时间并不重要,但最好是每60分钟检查一次,并且在我不访问电子表格时(即脱机)也能正常工作

我对使用GoogleSheets脚本编辑器非常陌生,所以仍然在努力掌握它。 我使用了下面的脚本。在脚本编辑器中,我执行了以下操作:

  • 编辑>项目触发器>添加触发器
  • 选择函数>HTTP响应
  • 偶数源>时间驱动
  • 选择基于时间的触发器类型>小时计时器

我希望上面的设置每小时更新一次URL检查……但它们似乎只有在我手动更新单元格时才会更新

任何帮助都将不胜感激。

试试以下方法:

function checkUrls( ) {
  var ss=SpreadsheetApp.openById('id');//set ss id
  var sh=ss.getSheetByName('Sheet1');//set sheet name
  var urlA=['https:example.com','http://example.com'];//u pick em
  for(var i=0;i<urlA.length;i++) {
    var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "'yyyy/mm/dd HH:mm:ss");//change format if you wish
    var response=UrlFetchApp.fetch(urlA[i]);
    sh.appendRow(ts,urlA[i],response.getResponseCode());
  }
}
函数checkURL(){
var ss=SpreadsheetApp.openById('id');//设置ss id
var sh=ss.getSheetByName('Sheet1');//设置图纸名称
var urlA=['https:example.com','http://example.com“];//你选他们
对于(var i=0;i尝试以下方法:

function checkUrls( ) {
  var ss=SpreadsheetApp.openById('id');//set ss id
  var sh=ss.getSheetByName('Sheet1');//set sheet name
  var urlA=['https:example.com','http://example.com'];//u pick em
  for(var i=0;i<urlA.length;i++) {
    var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "'yyyy/mm/dd HH:mm:ss");//change format if you wish
    var response=UrlFetchApp.fetch(urlA[i]);
    sh.appendRow(ts,urlA[i],response.getResponseCode());
  }
}
函数checkURL(){
var ss=SpreadsheetApp.openById('id');//设置ss id
var sh=ss.getSheetByName('Sheet1');//设置图纸名称
var urlA=['https:example.com','http://example.com“];//你选他们

对于(var i=0;iGreat,感谢Cooper的回复。因此,我已将这两个脚本放在脚本编辑器中,并在工作表中有一列调用GetStatusCode(“URL”)。要添加每小时触发器…我是否将事件源设置为来自电子表格或计时器?我不理解您对GetStatusCode(URL)的评论.至于你的问题,做你认为最好的,如果不起作用,试试另一种方法Hi Cooper。我已经设法让它与你的脚本一起工作了。非常感谢。太好了,谢谢Cooper的回复。因此,我将这两个脚本放在脚本编辑器中,在我的工作表中有一列名为GetStatusCode(“URL”)。若要添加每小时的触发器…我是否将事件源设置为来自电子表格或计时器?我不理解您对getStatusCode(URL)的评论。至于您的问题,请做您认为最好的事情,如果不起作用,请尝试另一种方法Hi Cooper。我已成功地使它与您的脚本一起工作。非常感谢。
function setupHourlyTimer() {
  if(!isTrigger('checkUrls')) {
    ScriptApp.newTrigger('checkUrls').timeBased().everyHours(1).create();
  }
}

function isTrigger(funcName){
  var r=false;
  if(funcName){
    var allTriggers=ScriptApp.getProjectTriggers();
    for(var i=0;i<allTriggers.length;i++){
      if(funcName==allTriggers[i].getHandlerFunction()){
        r=true;
        break;
      }
    }
  }
  return r;
}