根據Google的documentation關於特定於容器的可安裝觸發器,觸發器將「作爲安裝觸發器的用戶運行,而不是用戶觸發事件。Google應用腳本可以在受保護的電子表格中使用錯誤的權限
這似乎意味着觸發器可能會更新Google文檔中受保護的工作表,因爲雖然用戶可能無法編輯受保護的工作表,但如果觸發器是由具有寫入權限的用戶安裝的,則觸發器可能會被觸發。
要以最簡單的方式測試此想法,我嘗試使用onOpen事件觸發一個腳本,該腳本編輯受保護工作表上單元格的值。這是由可以編輯工作表的用戶安裝的。雖然它在用戶打開工作表具有寫權限的情況下起作用,但如果用戶不工作,則無法更新工作表。
這是由於我誤解它應該如何工作,或者它是一個錯誤? Google似乎很清楚腳本是以上傳腳本的用戶權限運行的。
我剛剛遇到同樣的問題,並嚮應用腳本問題跟蹤器添加了報告:http://code.google.com/p/google-apps-script-issues/issues/detail?id=1562 – Josh
我的解決方法是讓觸發器寫入一個完全不同的電子表格,該電子表格僅作爲視圖共享。 – Josh
更好的解決方法是使用SpreadsheetApp.openById(SpreadsheetApp.getActiveSheet()。getId())重新打開相同的活動電子表格,並且可以毫無問題地修改受保護的表單。 – Josh