已部署的GAS Web应用程序的授权

时间:2015-10-28 21:49:09

标签: google-apps-script

我正在尝试使用Google Apps脚本HtmlService构建基本部署的网络应用。该应用程序的目标是通过模板容纳和提供多个html表单,获取表单数据,记录它,并通过电子邮件发送到指定的电子邮件地址。我已经让应用程序代码和用户界面顺利运行,但我遇到了一些服务授权错误:

网络应用程序使用的一个节省时间的功能是脚本使用PropertiesService存储每个用户的一些基本信息,这样他们就不必每次都输入它。现在我已经部署了Web应用程序进行测试,我遇到了授权错误。

当我亲自尝试运行脚本时,我可以访问PropertiesService就好了,没有挂断。如果没有与他们共享脚本的用户尝试访问该服务,他们会收到一个通知,要求访问脚本本身,我并不想让我的团队中的每个人都能访问。

是否还有其他人试图为已部署的网络应用使用授权服务并遇到类似问题?我是否需要向我的应用添加特殊授权功能或脚本以确保最终用户具有适当的访问权限?我应该尝试其他方法来完成保存/使用个人用户数据吗?

欢迎任何建议。

这里是storibg用户变量的代码:

function processNewUserForm(formObject) {
  var newUserProperties = {
    first: formObject['firstName'],
    last: formObject['lastName'],
    emplid: formObject['EmplID'],
    email: user_email,
    workspace: formObject['Workspace'],
    team: formObject.team,
    username: formObject['Username'],
    computerTag: formObject['Computer Asset Tag']
  };

  try {
    userProperties.setProperties(newUserProperties, false);
  }
  catch(e) {
    sendErrorReport(e);
  }
}

注意:userProperties全局定义为 var userProperties = PropertiesService.getUserProperties();

1 个答案:

答案 0 :(得分:1)

我花了很多东西,但实际上我找到了授权问题的根本原因。我调用的服务器端函数实际上包含几个Logger.log(var1iable)引用,这对于调试很有用,但需要对脚本进行编辑访问才能运行。我删除了Logger引用,现在应用程序按预期运行。