Google Doc:onOpen()不会在复制的文档+脚本中执行

时间:2013-10-09 22:50:15

标签: google-app-engine google-apps-script

我有一个带有相关容器绑定脚本的模板文档。该脚本不需要身份验证 - 它只是在Google Docs UI中创建自定义菜单。

模板文档归我的GAE网络应用所有。通过Web应用程序创建新文档使用以下过程:

  1. 在网络应用的服务帐户中制作模板的副本。
  2. 使用用户提供的内容更新文档的media_body;
  3. 插入权限以将用户设置为文档所有者;
  4. 删除与网络应用服务帐户关联的权限,以便该文档对创建该文档的用户是私有的。
  5. 此过程按预期工作,但在脚本中执行onOpen()函数除外。脚本与文档一起成功复制,onOpen()可以手动运行(使用“脚本管理器”),但在打开文档时不会自动执行。删除步骤4解决了问题,但这使得文档“不如私有”。

    为什么onOpen()不会在复制的私有文档中执行?

1 个答案:

答案 0 :(得分:0)

因为原始onOpen使用原始所有者权限运行。从权限中删除该用户时,它将无法使用这些保存的凭据。 要么不要删除它,要么更好,但不要改变所有权只是与用户分享。这也将为您提供更多控制权,因为您将拥有所有已创建的系统文件。