【问题标题】:How do I allow users to edit my Sheets file via my own Google Scripts Web App?如何允许用户通过我自己的 Google Scripts Web App 编辑我的表格文件?
【发布时间】:2020-07-27 04:15:44
【问题描述】:

我是全新的 Google 脚本。我正在尝试创建一个网络应用程序,用户可以通过该应用程序登录(使用他们的 Gmail 帐户)并修改 Google 表格。这是注册页面的截图。

最初,用户通过他们现有的 Google 帐户登录并显示此页面。单击按钮后,我想要脚本将他们提交的信息和他们当前的电子邮件添加到 Google 表格中。一旦他们的信息出现在工作表中,他们只需通过 Google 登录即可访问系统。但是,当我使用另一个帐户尝试此操作时,我收到此错误:

这是权限问题吗?还是 Google Scripts 不允许对我的云端硬盘上的文件进行这种直接操作?这是我的网络应用程序的权限设置:

这可能吗?

【问题讨论】:

    标签: javascript google-apps-script


    【解决方案1】:

    根据您的问题,我可以理解您的Web Apps的设置如下。

    • Execute the app as: User accessing the web app
    • Who has access to the app: Anyone

    对于上述 Web 应用,您希望让用户使用每个浏览器访问 Web 应用。

    确认点:

    根据以上情况,请确认以下几点。起初,我认为当您要放置值的电子表格在每个用户的 Google Drive 中时,不会发生错误。因此,根据您的问题,我认为电子表格可能在您的 Google 云端硬盘中。

    • 虽然我不确定您的整个脚本,但如果您的 Web Apps 脚本中使用的 Google 电子表格在您的 Google Drive 中,则需要与用户共享该 Google 电子表格。即使 Web Apps 的脚本是电子表格的容器绑定脚本并使用getActiveSpreadsheet(),也需要与用户共享电子表格。
      • 如果您想在用户提交表单时将值放入 Google 云端硬盘中的电子表格,请以作者身份与用户共享电子表格。
      • 如果您只想在用户提交表单时从 Google 云端硬盘中的电子表格中读取值,请与作为查看者的用户共享电子表格。
      • 此外,您可以公开分享。但我认为这可能不是您所期望的方向。

    其他方法:

    如果您不想与用户共享电子表格,以下解决方法如何?

    1. 按照以下设置部署新的 Web 应用程序。
      • Execute the app as: Me
      • Who has access to the app: Anyone, even anonymous
        • 在这种情况下,您还可以使用键作为查询参数让用户访问此 Web 应用程序。
        • 使用Who has access to the app: Anyone时,需要与用户共享新Web Apps的脚本。所以我建议在这种情况下使用Anyone, even anonymous
    2. 提交表单后,这些值将使用这个新的 Web 应用程序放入您的 Google 电子表格中。
      • 在这种情况下,新的 Web 应用程序用作将值放入电子表格的包装 API。

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 2019-12-29
      • 1970-01-01
      相关资源
      最近更新 更多