бесконечный цикл авторизации при использовании устанавливаемого триггера - PullRequest
0 голосов
/ 04 июля 2019

Простое веб-приложение должно отправлять статическое электронное письмо каждый час. Для этого я использую устанавливаемый триггер. При первом вызове веб-приложения пользователю предлагается авторизовать веб-приложение. Однако после авторизации скрипт запрашивается повторная авторизация в бесконечном цикле. Как я могу избежать этого?

function doGet(e) {
  var params = JSON.stringify(e);

    ScriptApp.newTrigger('email')
      .timeBased()
      .everyHours(1)
      .create();

  return HtmlService.createHtmlOutput('looks like it worked');

  }

function email(){  GmailApp.sendEmail('test@example.com', 'Subject line', "works");}

Я ожидаю, что скрипт один раз запросит авторизацию, затем установит триггер под авторизованным пользователем и отправит электронное письмо каждый час

1 Ответ

1 голос
/ 05 июля 2019

Попробуйте это:

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;
}
function doGet(e) {
  var params = JSON.stringify(e);
  if(!isTrigger('email')) {
    ScriptApp.newTrigger('email').timeBased().everyHours(1).create();
  }
  return HtmlService.createHtmlOutput('looks like it worked');

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...