Google apps script Session.getActiveUser().getEmail()从电子表格分发成绩的变通方法
我的学生都有谷歌账户,但使用不同的电子邮件(比如john@hotmail.com).我试图编写一个网络应用程序,从我的成绩电子表格中获取该网络应用程序用户的电子邮件地址,这样每个学生都只能看到自己的成绩。webapp使用的会话:Session.getActiveUser().getEmail() 这只适用于与脚本位于同一域中的用户,我必须以webapp用户的身份运行脚本(这没关系——我的学生非常信任我!)。这是一项限制: 返回描述当前用户的用户对象。在里面 有限权限执行(例如响应onOpen或 onEdit),我们只返回活动用户的身份,如果 用户和脚本所有者是同一域的一部分。这是为了 保护消费者用户的隐私,他们可能不想要他们的电子邮件 地址暴露 我的脚本可以工作,但我必须将成绩表直接放在脚本中,并在每次更新电子表格时更新webapp。是的 我无法共享我的成绩电子表格,因为这样他们就会看到彼此的成绩。因此,现在我正在头脑风暴其他解决办法 以下是一个例子:Google apps script Session.getActiveUser().getEmail()从电子表格分发成绩的变通方法,google-apps-script,Google Apps Script,我的学生都有谷歌账户,但使用不同的电子邮件(比如john@hotmail.com).我试图编写一个网络应用程序,从我的成绩电子表格中获取该网络应用程序用户的电子邮件地址,这样每个学生都只能看到自己的成绩。webapp使用的会话:Session.getActiveUser().getEmail() 这只适用于与脚本位于同一域中的用户,我必须以webapp用户的身份运行脚本(这没关系——我的学生非常信任我!)。这是一项限制: 返回描述当前用户的用户对象。在里面 有限权限执行(例如响应onOpen或
PS:如果1看起来可行,一些简单加密代码的建议?我不明白你为什么说“我的脚本有效,但我必须将分数表直接放在脚本中,并在每次更新电子表格时更新webapp” 例如,使用flextable创建一个显示电子表格一部分的webapp非常容易。应用程序的每个实例都会自动包含与用户相关的内容,您只需更新主电子表格即可获得所需内容。我不知道你为什么要对数据进行编码。。。我认为通过谷歌登录的用户身份应该足够了,不是吗? 对于这样的Web应用程序,您看到的数字来自主电子表格中的特定列(对于此公共副本,我将应用程序设置为以“我”的身份运行,以避免授权过程,但实际上每个用户都被识别,并且只看到自己的数据) 电子表格本身和代码是,如果您需要更多信息,请随时返回 有一些简单的加密选项,比如base64encode,可能会有一点混乱
是的,GAS具有使用Base64算法进行编码/解码的功能,但我认为,即使有一点加扰,它也不是一个选项。学生们很聪明。我的意见是使用加密算法的JavaScript实现,例如。它有许多在JavaScript(和)上的实现。这些实现应在气体环境中工作,无需任何更改或稍作修改。将源代码复制并粘贴到GAS编辑器就足够了。是否可以将工作表与scriptDB同步?
然后查询数据库,其中user=loginID谢谢!会的(学生们在这些事情上通常比我聪明…)谢谢!我认为你是对的——学生们总是比我聪明(谢天谢地)。但从代码上看,编码看起来有点令人望而生畏。尽管如此,如果代码没有经过太多调整就可以使用,那么就应该可以了。(对密码学一无所知,我确实发明了一些简单的置乱算法,但我猜任何人都可以绕过它。尽管如此,如果我真的想到了什么,我还是会把它贴在这里……并且在一些密码学论坛上,只是出于好奇。)(哎呀,我对评论功能有点纠结……)你说:我将应用程序设置为以“我”的身份运行,以避免授权过程,但实际上,每个用户都被识别,只看到自己的数据“。我试着这么做,但没有成功。如果你的应用程序可以显示在顶部的用户电子邮件,我会非常感兴趣。到目前为止,我只看到一对排他性的选择:webapp以我的身份运行,而我看不到用户的电子邮件,或者webapp以用户的身份运行,而应用程序无法读取我的电子表格。到目前为止,我还没有看到第三种选择,这就是为什么我将电子表格信息放在webapp中的原因。谢谢你的反馈!您必须将应用程序设置为“访问应用程序的用户”,将电子表格设置为“具有链接的任何人都可以编辑”(在我的情况下,必须是读/写)。这并不意味着任何人都可以打开工作表本身,因为ID仍然未知。如果你想让我更改我的应用程序参数供你测试,或者如果你自己做,你可以复制as和代码。对不起,这里输入错误:我的意思是你可以复制SS和代码。很有趣!我试试看。您提到的关键是让任何人都可以通过该链接访问它。。。。这就是我一直在寻找的解决方案。我会让你知道我的情况。谢谢好啊这就成功了——非常感谢你向我指出这一点。对于我的案例,有一个小小的调整:共享电子表格链接只需是视图即可。编辑是没有必要的,这是一件好事,只是为了以防万一,一个学生奇迹般地(接近完美的概念)找到了与表格的链接。再次,非常感谢您的帮助和分享您的工作。我还没有使用scriptDB功能。我会调查的。谢谢你的建议!