liberrace
liberrace

Reputation: 23

How to create installable google app script triggers programmatically?

I may misunderstand the spec of triggers but let me ask the following question.

I m developing an app that creates a spreadsheet with a container bound script to the spreadsheet. The script has functions that expect to be run by triggers (onEdit or so on). Since the functions have some feature that require authorization and simple triggers cannot run them, "installable trigger" should be used. I don't wanna users to set triggers by themselves so I also wanna create trigger by program when a user open the spreadsheet at the fist time using simple trigger function onOpen(e).

My problem is that installable trigger cannot be created in the simple trigger function like below.

function onOpen(e) {
    const triggers = ScriptApp.getProjectTriggers()
    const trigger = triggers.find(trigger => trigger.getEventType() === ScriptApp.EventType.ON_EDIT)
    if (!trigger) {
        // ↓error occurs "Exception: ScriptApp.getProjectTriggers を呼び出す権限がありません。"
        ScriptApp.newTrigger('myFunction').forSpreadsheet('spreadsheetId').onEdit().create()
    }
}

Is there anyway to create installable triggers in simple trigger function ? or Google Script API SDK (node.js) can solve this ?

Thanks,

Upvotes: 1

Views: 1497

Answers (1)

liberrace
liberrace

Reputation: 23

The way to solve:

  1. Add an add-on menu
  2. Let a user click the menu to install "installable triggers"

Other way Tanaike-san raised:

  1. Deploy the script as a webApp
  2. The app installs "installable triggers"

I didn't try the latter solution but. Thanks,

Upvotes: 0

Related Questions