2012-12-05 24 views
1

我對電子表格的Google腳本有問題。我通過資源菜單安裝了一個腳本onEdit。該腳本將未受保護的工作表中的某些單元複製到受保護的工作表。當我登錄到我的帳戶(我是電子表格的所有者)時,該腳本正常工作,但在從無權訪問受保護工作表的協作者帳戶運行時遇到權限錯誤。 不應該腳本作爲我(帳戶所有者)運行,並且不會遇到權限問題? 在運行onFormSubmit能夠編輯保護板時的合作者提交表單,即使他有受保護工作表沒有訪問同一個電子表格的另一個劇本。這表明問題本身不具有權限,但是問題是針對onEdit觸發器的,對嗎?嘗試編輯受保護工作表時,onEdit觸發的腳本出現權限錯誤

+0

也許添加代碼的相關位會幫助 – Tivie

+0

我遇到了類似的問題。我已經安裝'triggeredOnEdit'作爲一個onEdit觸發器,作爲我(所有者)運行。當我使用電子表格時,一切正常。當我嘗試使用其他帳戶時,當我嘗試編輯受保護的工作表時,我遇到了權限錯誤。 – Fred

回答

1

這是預期的行爲。 onEdit觸發器是三個「簡單觸發器」之一。

docs: 「這些簡單的觸發響應在谷歌電子表格的操作運行,它們運行的​​活躍用戶。例如,如果Bob打開電子表格,然後的OnOpen函數運行鮑勃,不論誰的。添加腳本到電子表格出於這個原因,簡單的觸發器在他們被允許做什麼限制:當電子表格以只讀方式打開

  • 他們不能執行
  • 他們不能確定當前用戶
  • 他們cann無法訪問任何需要進行身份驗證的服務,如 用戶。例如,Google翻譯服務是匿名的,可以通過簡單觸發器訪問 。 Google日曆,Gmail和Google協作平臺 不是匿名的,簡單觸發器無法訪問這些 服務。
  • 他們只能修改當前的電子表格。訪問其他 電子表格是被禁止的。
+0

onEdit可以是一個簡單的觸發器,但它也可以是一個容器特定的觸發器,應該「根據創建觸發器的用戶的身份執行」(https://developers.google.com/apps-script/execution_container_triggers)和「onEdit函數可以寫入電子表格中的任何單元格。」據我所知,如果腳本是從腳本編輯器>資源>當前腳本的觸發器>運行>事件>來自電子表格>編輯(https://developers.google.com/apps-script/understanding_triggers# ActionTriggers)它應該表現爲特定於容器的可安裝觸發器。 – Andres

+0

哦,我明白了......對不起,我誤解了你的問題。你是否只爲所有者安裝了onEdit和onFormSubmit觸發器?如果您爲協作者安裝了onEdit觸發器,但不是所有者,它將作爲協作者運行,因此無法訪問受保護的工作表。 –

+0

它們都是爲所有者安裝的。 – Andres

相關問題