Session.getActiveUser()。getEmail()解决方法从电子表格分发等级(Se

2019-09-24 04:13发布

我的学生都有一个谷歌帐户,但使用不同的电子邮件(如john@hotmail.com)。我试图写一个web应用程序会从我的成绩的电子表格与Web应用程序的用户的电子邮件地址的行得到的,让每个学生只能看到他或她的成绩。 这webapp的用途:Session.getActiveUser()getEmail()。

这仅适用于在同一个域中的用户脚本作品,我要运行脚本的Web应用程序的用户(这是确定的 - !我的学生相信我那么远)。 这里是一个限制:

返回描述当前用户的用户对象。 在有限的特权执行(例如响应于的OnOpen或onEdit),我们只返回活跃用户的身份,如果两个用户和脚本所有者是相同的域的一部分。 这是为了保护消费者的用户,谁可能不希望他们的电子邮件地址暴露的隐私。

我的剧本作品,但我必须把成绩表直接在脚本每次更新我的电子表格更新web应用程序。 Yeck!

我不能分享我的成绩的电子表格,因为那么就要看对方的等级。 所以,现在我的头脑风暴其他解决方法。

下面是一个例子:

  1. 分享第二的电子表格,从我的电子表格中复制的等级与加密等级的更新功能。 web应用程序吸取从共享的电子表格和解密数据。 现在电子表格的简单更新所有需要 - web应用程序不需要重新发布。 (有一些简单的加密选项,就像也许有点扰base64encode ......?)

  2. 找到一种方法来自动更新Web应用程序并重新发布。 (不知道该怎么做。)

  3. ????

有什么建议么?

PS:如果1似乎是可行的,对于简单的加密代码的一些建议吗?

Answer 1:

我不明白为什么你说“我的剧本的作品,但我必须直接放在档次的表脚本,每次更新Web应用程序更新我的电子表格”

这是很容易创建web应用程序,显示例如使用flextable电子表格的一部分。 应用程序的每个实例都将自动获得一个用户相关的内容,你将只需要更新您的主电子表格来得到你想要的。 我不知道你为什么要编码此数据...我想通过谷歌的登录用户标识应该是足够了,不是吗? 下面是一个例子这样的web应用,你会看到从一个特定的列都采取了在一个主电子表格(这个公共副本的数字我设置的应用程序为为“我”,以避免授权过程,但在实际每个用户运行被确定而只能看到他的数据)。

电子表格本身和代码都可见这里 ,不要犹豫,回来,如果你需要更多的信息。



Answer 2:

有一些简单的加密选项,就像也许有点扰base64encode ...?

是的,气体的功能,编码使用中的Base64算法/解码- Utilities.base64Encode , Utilities.base64Decode ,但我认为,它甚至不是一个选项a little scrambling 。 学生很聪明。 我的意见是使用JavaScript实现一个加密算法,比如河豚 。 有一些它的JavaScript的(实现的这里和这里 )。 这些实现应在气体环境中工作,没有任何改变或小的修改。 它应该是足够的源代码复制并粘贴到GAS编辑器。



Answer 3:

它是你的片上,ScriptDb的同步选项? 然后查询数据库其中user =登录ID



Answer 4:

目前正在一个名为gGradebook项目,这不正是你想要什么: http://www.gclassfolders.com/standalone-resources/ggradebook



文章来源: Session.getActiveUser().getEmail() workaround for distributing grades from a spreadsheet