Google app trigger di script non funziona

Ho un app di google script che invia e-mail, e ho impostato un trigger in modo tale che invia e-mail ogni forma presentare. Il problema è il trigger funziona perfettamente bene per i primi minuti, ma poi, anche dopo aver inserito i dati corretti. Lo script non invia la mail, devo premere manualmente l’esecuzione pulsante dello script. Ecco il mio codice

var EMAIL_SENT = "EMAIL_SENT";
function sendEmailsapp() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  //First row of data to process
  var numRows = sheet.getLastRow();   //Number of rows to process
  //Fetch the range of cells A2:B3

  var dataRange = sheet.getRange(startRow, 1, numRows,8)
  //Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[4];  //First column
    var message = row[5];       //Second column
    var emailSent = row[7];  //Third column
    var money=row[6]
    if (emailSent != EMAIL_SENT) {  //Prevents sending duplicates
      var subject = "You have been registered for follwoing events:-";
      var event;

      MailApp.sendEmail(emailAddress, subject, "Please bring your college id and copy of this mail either in phone or printed paper"+
                        "\n\n"+"Name:-"+row[1]+"\n"+"USN:-"+row[2]+"\n"+"Mobile:-"+row[3]+"\n"+"Event:-"+ message+"\nMoney status:-"+money+"You registered on"+row[0]);
        sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT);


      //Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

Il codice funziona bene. L’unico problema è trigger.

Qui è l’immagine del mio grilletto. sendEmailsapp è il grilletto, e sendEmailsweb è un altro trigger che soffre stesso problema. Google app trigger di script non funziona

ecco il log Google app trigger di script non funziona

Il mio unico Problema è che il trigger non è attivato, non è con l’email viene inviata.

OriginaleL’autore | 2015-02-24

4 Replies
  1. 21

    Mio trigger non funziona, proprio come la tua, anche se lo script è stato corretto.

    La soluzione era molto stupido. Ho eliminato il grilletto e ha aggiunto uno nuovo. Esattamente la stessa attivazione.

    Questo ha funzionato per me (due volte)…grazie.
    Mi hai salvato, mi sono stati di debug per oltre 5hours e questa è stata la soluzione. Grazie Allure Soluzioni Web!
    Felice di aiutarti! Se si ritiene opportuno, si può fare la mia risposta come la soluzione accettata.
    qualsiasi ragione di questo sta accadendo? io sono sempre lo stesso problema. il trigger continua solo per smettere di funzionare dopo un certo periodo di tempo. nessuna rima o ragione.
    Non sono stato in grado di determinare la causa del problema

    OriginaleL’autore Allure Web Solutions

  2. 9

    Ho avuto questo problema con il mio script, ma stavo usando Time-Driven come Evento. Ho impostato su ogni minuto, ma semplicemente non fare nulla. Utilizzato il metodo di registrazione scritto sopra e ho scoperto che il trigger funziona bene ogni minuto, come l’ho impostato. Ma proprio non sarebbe in realtà fare la stessa cosa quando ho esplicitamente fare clic sul pulsante Esegui.

    Ho il sospetto che aveva qualcosa a che fare con la seguente riga:

    var sheet = SpreadsheetApp.getActiveSheet();

    Così ho giocato intorno con esso e si cambia:

    var spreadsheet = SpreadsheetApp.openById("INSERT_SPREADSHEET_ID_HERE");
    var sheet = SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);

    E finalmente ha funzionato.

    Sostituire INSERT_SPREADSHEET_ID_HERE con l’ID del tuo foglio di calcolo (dall’URL https://docs.google.com/spreadsheets/d/INSERT_SPREADSHEET_ID_HERE/edit#gid=0).

    E dal getSheets()[0], il 0 sarebbe il primo di forse più fogli in quello specifico foglio di calcolo.

    Spero che questo aiuta in alcun modo.

    Un’idea del perché questo accade?

    OriginaleL’autore Shafiq Hakim

  3. 1

    Quello che ho trovato utile è stato quello di impostare le notifiche per immediato in “Risorse>Corrente di Progetti Trigger”. L’ho impostato per inviare una e-mail in caso di errore. E-mail che contiene i dettagli del problema che si può risolvere :).

    OriginaleL’autore kpg

  4. 0

    Sarei disposto a scommettere che il problema non è il grilletto. Anche se il codice funziona, potrebbe essere condizioni che impediscono il condizionale sezione di codice per lavoro. È possibile verificare che la funzione è in realtà il trigger, anche se non dà il risultato atteso. Mettere un Logger.log() dichiarazione subito dopo la funzione:

    function sendEmailsapp() {
      Logger.log('sendEmailsapp ran!');

    Quindi VISUALIZZARE i REGISTRI. Non riesco a credere che la funzione non viene attivata. L’e-mail potrebbe non essere sempre inviati, ma sarei disposto a scommettere che si sta per ottenere che il messaggio ‘sendEmailsapp corse!’ stampato i REGISTRI. Quindi, questo è la prima cosa che devi fare.

    La prossima cosa che dovete fare è mettere un Logger.log() istruzione immediatamente dopo il recupero di e-mail:

    var emailSent = row[7];
    Logger.log('value of the email is: ' + emailSent);

    Poi controllare i LOG per quali valori sono in realtà sta per essere restituito. Se ogni valore restituito è “EMAIL_SENT”, quindi, la posta non verrà mai inviato.

    Abbiamo bisogno di sapere che cosa i risultati effettivi sono. È necessario fornire ciò che è stato stampato i REGISTRI.

    si prega di vedere la modifica in questione, ho messo il log, ho un problema con il trigger non venga attivato. Io sm ottenere le e-mail dopo che ho manualmente, premere il pulsante esegui, dopo che il trigerrs funzionano perfettamente bene per alcuni minuti, poi non fare l’esecuzione automatica.
    Se non è il codice, quindi deve essere un qualche tipo di bug che Google avrebbe bisogno di correzione. Per segnalare un bug, assicurarsi che il problema può essere replicato, in modo da può essere testato. Apps Script Issue Tracker
    Fatto, spero che si ottiene risolto, a quanto pare sacco di persone sono di fronte a questo problema.

    OriginaleL’autore Sandy Good

Lascia un commento