我對電子表格的Google腳本有問題。我通過資源菜單安裝了一個腳本onEdit。該腳本將未受保護的工作表中的某些單元複製到受保護的工作表。當我登錄到我的帳戶(我是電子表格的所有者)時,該腳本正常工作,但在從無權訪問受保護工作表的協作者帳戶運行時遇到權限錯誤。 不應該腳本作爲我(帳戶所有者)運行,並且不會遇到權限問題? 在運行onFormSubmit能夠編輯保護板時的合作者提交表單,即使他有受保護工作表沒有訪問同一個電子表格的另一個劇本。這表明問題本身不具有權限,但是問題是針對onEdit觸發器的,對嗎?嘗試編輯受保護工作表時,onEdit觸發的腳本出現權限錯誤
回答
這是預期的行爲。 onEdit觸發器是三個「簡單觸發器」之一。
從docs: 「這些簡單的觸發響應在谷歌電子表格的操作運行,它們運行的活躍用戶。例如,如果Bob打開電子表格,然後的OnOpen函數運行鮑勃,不論誰的。添加腳本到電子表格出於這個原因,簡單的觸發器在他們被允許做什麼限制:當電子表格以只讀方式打開
- 他們不能執行
- 他們不能確定當前用戶
- 他們cann無法訪問任何需要進行身份驗證的服務,如 用戶。例如,Google翻譯服務是匿名的,可以通過簡單觸發器訪問 。 Google日曆,Gmail和Google協作平臺 不是匿名的,簡單觸發器無法訪問這些 服務。
- 他們只能修改當前的電子表格。訪問其他 電子表格是被禁止的。
onEdit可以是一個簡單的觸發器,但它也可以是一個容器特定的觸發器,應該「根據創建觸發器的用戶的身份執行」(https://developers.google.com/apps-script/execution_container_triggers)和「onEdit函數可以寫入電子表格中的任何單元格。」據我所知,如果腳本是從腳本編輯器>資源>當前腳本的觸發器>運行>事件>來自電子表格>編輯(https://developers.google.com/apps-script/understanding_triggers# ActionTriggers)它應該表現爲特定於容器的可安裝觸發器。 – Andres
哦,我明白了......對不起,我誤解了你的問題。你是否只爲所有者安裝了onEdit和onFormSubmit觸發器?如果您爲協作者安裝了onEdit觸發器,但不是所有者,它將作爲協作者運行,因此無法訪問受保護的工作表。 –
它們都是爲所有者安裝的。 – Andres
- 1. 受保護工作表上的錯誤
- 2. 腳本可以編輯受保護的範圍或工作表嗎?
- 3. 嘗試編輯表時出現SQL Server Management Studio錯誤
- 4. 超出範圍嘗試複製工作表時出現錯誤
- 5. 嘗試使用腳本時權限被拒絕錯誤。字典
- 6. Google腳本/電子表格 - 已安裝觸發器onEdit的共享權限
- 7. 保護工作表時出現錯誤400
- 8. 嘗試提交SVN時出現「不是工作副本」錯誤
- 9. 嘗試訪問編輯器方法時出現錯誤
- 10. 嘗試觸發狀態更改函數時出現錯誤
- 11. 嘗試從mysql觸發器插入時出現語法錯誤
- 12. 觸發onEdit()與程序化編輯
- 13. 在受保護的VBA工作表中的形狀上禁用編輯文本
- 14. 在新工作表中列出未受保護的工作表
- 15. 嘗試執行vNext部署腳本時出現Base-64錯誤
- 16. 嘗試發送驗證郵件時出現「權限被拒絕」
- 17. 在不受保護和受保護的工作表中實現代碼VBA Excel
- 18. 錯誤嘗試訪問受保護的內存在C#線程
- 19. word.open()錯誤 - 嘗試讀取或寫入受保護的內存
- 20. 嘗試保存/預覽筆記本時出現下標錯誤
- 21. 嘗試打開現有文件時發出http 500錯誤的Python腳本(webpy)
- 22. 嘗試觸發器更改時出錯
- 23. Google應用腳本可以在受保護的電子表格中使用錯誤的權限
- 24. 嘗試從ghci觸發文本編輯器時遇到問題
- 25. 權限嘗試在apache上運行wsgi selenium腳本時「geckodriver.log」的拒絕錯誤
- 26. 實時Google腳本表單更改(觸發器,onEdit())
- 27. 編輯腳本時出現統一DLL錯誤
- 28. 嘗試使用gmail附加應用的.apk文件時出現權限錯誤
- 29. 嘗試獲取工作狀態時出現角度錯誤
- 30. 當工作表受到保護時,更改工作表顏色
也許添加代碼的相關位會幫助 – Tivie
我遇到了類似的問題。我已經安裝'triggeredOnEdit'作爲一個onEdit觸發器,作爲我(所有者)運行。當我使用電子表格時,一切正常。當我嘗試使用其他帳戶時,當我嘗試編輯受保護的工作表時,我遇到了權限錯誤。 – Fred