«К сожалению, произошла ошибка сервера. Пожалуйста, подождите немного и попробуйте снова». продолжается в течение нескольких дней и не пройдет go - PullRequest
1 голос
/ 07 апреля 2020

У меня есть таблица со списком песен, которые я выбрал, чтобы облегчить скуку моих учеников в школе. поэтому я написал этот код, чтобы публиковать sh 3 песни из этого списка каждый день в 9:00 на моем курсе в классе, и он работал в течение нескольких дней, затем он начал сообщать об ошибке, которую вы видите в заголовке ,

код следующий

function createTrigger() { 
  // Trigger every day at 9
  ScriptApp.newTrigger('pubblicavideo')
      .timeBased()
      .atHour(9)
      .everyDays(1) // Frequency is required if you are using atHour() or nearMinute()
      .create();
}

function onOpen() { 
  //aggiunge il bottone autotrigger con run e stop all'apertura del documento spreadsheet
  var ui = SpreadsheetApp.getUi();

  ui.createMenu("Auto Trigger")
    .addItem("Run","runAuto")
    .addItem("Stop","deleteTrigger")
    .addToUi();
}

function runAuto() { 

  // resets the loop counter if it's not 0
  refreshUserProps(); 
   // clear out the sheet
  clearData();  
  // create trigger to run program automatically
  createTrigger();
}

function refreshUserProps() {
  var userProperties = PropertiesService.getUserProperties();
  userProperties.setProperty('loopCounter', 0);
  userProperties.setProperty('contarighe', 1);
}



function deleteTrigger() {

  // Loop over all triggers and delete them
  var allTriggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < allTriggers.length; i++) {
    ScriptApp.deleteTrigger(allTriggers[i]);
  }
}

function pubblica(k)
{
  var corso = Classroom.Courses.get(61109944129);
  var foglio = SpreadsheetApp.getActive();
  var linkini = foglio.getRange("C2:C2014");
  var titolini = foglio.getRange("B2:B2014");
  var autorini = foglio.getRange("A2:A2014");
  var cell = linkini.getCell(k, 1);
  var cella = titolini.getCell(k, 1);
  var cello = autorini.getCell(k, 1);
  var link = cell.getValue();
  var titolo = cella.getValue();
  var autore = cello.getValue();
  var courseWork = {
  'title': titolo,
  'description': autore,
  'materials': [
     {'link': { 'url': link }}    
],
  'workType': 'ASSIGNMENT',
  'state': 'PUBLISHED',
}
Classroom.Courses.CourseWork.create(courseWork, 61109944129);
}

function clearData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data');

  // clear out the matches and output sheets
  var lastRow = sheet.getLastRow();
  if (lastRow > 1) {
    sheet.getRange(2,1,lastRow-1,1).clearContent();
  }
}



function pubblicavideo()
{
  var pezzialgiorno = 3;   //numero di pezzi da pubblicare ogni giorno
   var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Data');


   var userProperties = PropertiesService.getUserProperties();
  var loopCounter = Number(userProperties.getProperty('loopCounter'));
  var contarighe = Number(userProperties.getProperty('contarighe'));
  // put some limit on the number of loops
  // could be based on a calculation or user input
  // using a static number in this example
  var limit = 671;

  // if loop counter < limit number, run the repeatable action
  if (loopCounter < limit) {

    // see what the counter value is at the start of the loop
    Logger.log(loopCounter);

    // do stuff
   for (var i=0; i<pezzialgiorno; i++)
   {
     pubblica(contarighe);
     contarighe++;
   }
     // increment the properties service counter for the loop
    loopCounter +=1;
    userProperties.setProperty('loopCounter', loopCounter);
    userProperties.setProperty('contarighe', contarighe);

    // see what the counter value is at the end of the loop
    Logger.log(loopCounter);
    Logger.log(contarighe);
  }

  // if the loop counter is no longer smaller than the limit number
  // run this finishing code instead of the repeatable action block
  else {

    // Log message to confirm loop is finished
    sheet.getRange(sheet.getLastRow()+1,1).setValue("Finished");
    Logger.log("Finished");

     // delete trigger because we've reached the end of the loop
    // this will end the program
    deleteTrigger();  
  }
}

Я пытался изменить код, но он не позволяет сохранить его из-за той же ошибки. Я попытался посмотреть на отчет о казнях и нашел этот

отчет о неудачных казнях. Вы можете видеть (я надеюсь), что это работало до 3-го апреля, а потом уже ничего не работало, даже часть onOpen, всегда та же самая ошибка

, поэтому я не могу изменить код, я могу не запускаю, я не могу это остановить, и это не работает. что мне делать?

...