Лучший способ создавать и управлять чьими-то триггерами (ГАЗ) - PullRequest
0 голосов
/ 03 июня 2019

Я написал некоторый код GAS для человека, и для этого потребовался триггер.

Я создал эту строку и попросил человека позвонить ей, чтобы настроить его триггер (так как это его электронная таблица):

ScriptApp.newTrigger("myFunction").timeBased().everyDays(1).inTimezone("Australia/Brisbane").atHour(5).create()

Но тогда я не вижу его спускового крючка.

Чтобы увидеть, есть ли триггер, я использовал:

Logger.log(ScriptApp.getProjectTriggers())

Он вернул пустой массив, похоже, что триггер пропал, но я не вижу его физически ...

Так что, если это клиент, не круто спрашивать его «пожалуйста, настройте свой триггер», а затем не сможете его увидеть, а затем попросите проверить, есть ли он.

Каков наилучший способ настройки и управления триггерами для клиентов?

Ответы [ 2 ]

2 голосов
/ 03 июня 2019

Чтобы увидеть его триггеры, откройте редактор и выберите «Текущие триггеры проекта» в меню «Правка».

На странице триггера нажмите «x» на фильтре «Принадлежит мне». Затем вы должны увидеть все триггеры проекта и узнать, настроен ли он. Я не думаю, что это скажет вам, кому это принадлежит.

Вы не можете "управлять" его триггерами оттуда, просто посмотрите на них. Нет способа связываться с триггерами других людей (очень обсуждаемая тема!), Но вы можете изменить имя функции, чтобы отключить триггер.

2 голосов
/ 03 июня 2019

РЕДАКТИРОВАТЬ: Как указано в принятом ответе, кажется, что триггеры других пользователей можно просматривать вручную на панели инструментов .


Триггеры других пользователей недоступны для просмотра программно / вручную по соображениям безопасности.

Я создал эту строку и попросил человека позвонить ей, чтобы настроить его триггер (так как это его электронная таблица):

Вы должны явно создать меню, чтобы пользователь мог щелкнуть по нему, чтобы создать триггер:
Если пользователь устанавливает триггер с помощью пунктов меню, вы можете установить идентификатор триггера для службы свойств, например так.

function createTrigger(){ //to be linked to a "Create Trigger" menu

// Creates an edit trigger for a spreadsheet identified by ID.
var tid = ScriptApp.newTrigger('myFunion')
    .forSpreadsheet('1234567890abcdefghijklmnopqc3')
    .onEdit()
    .create()
    .getUniqueId();

//set id of trigger in properties 
PropertiesService
    .getScriptProperties() //if you want public access to trigger(If not use getUserProperties)
    .setProperty(
        Session.getEffectiveUser().getEmail() || 
            ('user1 ' + Math.random().toFixed(3)),
        tid
    );

//Inform user: trigger created successfully.
SpreadsheetApp.getActive().toast('Trigger created successfully with id: ' + tid);
//@see https://script.google.com/home/triggers
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...