我有一個帶有關聯的容器綁定腳本的模板文檔。該腳本不需要認證 - 它只是在Google Docs UI中創建一個自定義菜單。Google文檔:onOpen()不會在複製的文檔+腳本中執行
模板文檔歸我的GAE網絡應用程序所有。通過Web應用程序創建新文檔使用以下過程:
- 在Web應用程序的服務帳戶中複製模板。
- 用用戶提供的內容更新文檔的media_body;
- 插入權限將用戶設置爲文檔所有者;
- 刪除與Web應用程序服務帳戶關聯的權限,以便文檔對創建它的用戶是私有的。
此過程按預期工作,除了在腳本中執行onOpen()函數。該腳本與文檔一起成功複製,並且可以手動運行onOpen()(使用'腳本管理器'),但在打開文檔時它不會自動執行。刪除步驟4解決了這個問題,但是這使得文檔'不夠私人'。
爲什麼onOpen()在複製的私人文檔中執行?
這很奇特。你是說如果一個服務帳戶是電子表格上的協作者,那麼'onOpen'不會運行?你可以運行一些額外的測試,比如在'onOpen'正常運行的文檔上添加這個服務帳戶作爲協作者嗎? –
不,反其道而行之:在將服務帳戶作爲協作者移除後,'onOpen()'不會運行。 – rphv