Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Google脚本和工作表--我需要和完整的读/写共享吗?

Google脚本和工作表--我需要和完整的读/写共享吗?
EN

Stack Overflow用户
提问于 2019-06-13 06:14:15
回答 1查看 80关注 0票数 1

我有一个访问电子表格的应用程序脚本(如果您想玩这里)。对大多数东西来说,它所做的就是读床单.

然而..。

我想让用户存储一些数据。基本上,我让脚本收集他们的电子邮件地址并使用它在我的电子表格中创建一个页面.

当然,不幸的是,这样做需要给他们读/写的权限.为了保护用户的数据,我不想这么做。

但是,这两者都有可能:

  1. 扩展对我的应用程序本身的读/写访问权限(对于工作表),而不公开该页,以及
  2. 还能访问用户的电子邮件地址吗?

我在这个过程中学到的东西:

  • 如果我部署应用程序以我的身份运行,我无法访问用户的电子邮件地址。
  • API键只对公共数据有用。

我在doGet例程中初始化页面。我将用户名和相关的工作表打包在一个函数中,以便在测试时轻松地将占位符替换为电子邮件地址。以下代码对我来说很好,因为我是经过身份验证的用户:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function doGet(e) {
  if (!e.parameter.page) {
    var userCrewSheetName = getUserSheetName();
    var userCrewSheet = activeSpreadsheet.getSheetByName(userCrewSheetName);
    initializeSheet(userCrewSheet,userCrewSheetName);
    var userBonusSheetName = getUserSheetName("bonus");
    var userBonusSheet = activeSpreadsheet.getSheetByName(userBonusSheetName);
    initializeSheet(userBonusSheet,userBonusSheetName);
    return HtmlService.createTemplateFromFile('test').evaluate();
  }
  return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate();
}

function initializeSheet(sheet,sheetName) {
  if(sheet == null) { 
    sheet = activeSpreadsheet.insertSheet();
    sheet.setName(sheetName);
    setHeaders(sheet,sheetName);
  }
}

function getUserSheetName(sheetType) {
  var userName = Session.getActiveUser().getEmail();
  if (!userName) { return };
  if(sheetType == "bonus") {
    return userName + '_my_bonus';
  } else {
    return userName + '_my_crew';
  }
  return "error";
}
EN

回答 1

Stack Overflow用户

发布于 2019-06-13 08:17:03

去过那里,伙计。如果我正确理解您的问题,您希望您的webapp能够检测用户ID并允许他们从其中读取数据,在某些情况下还允许他们将数据存储到其中。

您的回答是,您需要再次发布您的webapp与RunAs:我。这样,您仍然能够捕获用户is,允许它们读取数据和写入数据,而无需在您访问webApp时直接编辑访问您的电子表格。干杯!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56582496

复制
相关文章
Python open 读和写
# -*- coding: utf-8 -*- # 测试文件名为: # text.txt # 测试文件内容为: # abcdefg # 每次操作后将文件复原 # r # 以只读方式打开文件,文件不可写 # 要打开的文件不存在时会报错 # 文件的指针将会放在文件的开头 # 这是默认模式 # # file = open('test.txt', 'r') # # FileNotFoundError: [Errno 2] No such file or directory: 'test.txt' # file
hankleo
2020/09/16
7030
我写的代码真的规范吗
相信很多人都有这样的经历,做项目经常都是需求赶着自己,加班加点的完成功能开发,盼望着浏览器控制台不要出现红色的报错,惊险的通过QA测试,最后期盼着能够按时完成成功上线。 很明显,自己在日常需求开发中,更多的是关注功能能否实现,效果能否实现,按时上线能否实现。这样的技术人生是不是太没追求了呢?作为一名开发,是不是还要考虑自己的代码是否足够规范,是否足够强壮,是否有性能隐患呢? 控制台没报错,功能正常并不代表自己写的代码是符合规范,更不能代表代码是没有隐患的,我们需要一个更严谨的工具来校验自己写的代码。而这个工具就是今天在这里介绍的Eslint。 Eslint是什么
用户1065635
2019/03/21
1.2K0
独占锁(写锁)/共享锁(读锁)/互斥锁
独占锁:指该锁一次只能被一个线程所持有。对ReentrantLock和Synchronized而言都是独占锁
名字是乱打的
2022/05/13
1.4K0
独占锁(写锁)/共享锁(读锁)/互斥锁
C#注册表的读,写,删除,查找
C#注册表的读,写,删除,查找 using system; using system.collections; using system.configuration; using system.data; using system.web; using system.web.security; using system.web.ui; using system.web.ui.htmlcontrols; using system.web.ui.webcontrols; using sys
阳光岛主
2019/02/19
2.1K0
win10 UWP 你写我读
想要电脑读出我们写的内容,在win10,很简单 其实这个技术在windows7就有了,但是现在 win10 写出一个你写我读的软件很简单。 我们需要一个类 MediaElement 来播放,因为 windows10 的M arkdown 软件用的不是很好,所有我自己写一个。 这个软件我用了你写我读,如果需要代码,请自己去下 https://github.com/lindexi/Markdown
林德熙
2022/08/04
3270
win10 UWP 你写我读
win10 UWP 你写我读
想要电脑读出我们写的内容,在win10,很简单 其实这个技术在windows7就有了,但是现在 win10 写出一个你写我读的软件很简单。 我们需要一个类 MediaElement 来播放,因为 windows10 的M arkdown 软件用的不是很好,所有我自己写一个。 这个软件我用了你写我读,如果需要代码,请自己去下 https://github.com/lindexi/Markdown
林德熙
2018/09/18
5550
win10 UWP 你写我读
我还需要和我的猫一起发文章吗?
早年一个学术界的段子一直让我印象深刻,有一些作者独立完成了自己的工作,却囿于投稿杂志的陈规,无法只写一个作者,无(愉)奈(快)间(地)加上了自己的猫,或者邀请其他萌萌哒的小助手作为co-authors。而随着时间的发展,根据学科本身的特点,越来越多的学者喜欢独行侠式科研,毕竟,全栈即自由嘛~正所谓一个人就是一个队伍,那么至今生物信息领域中的独行侠有多少呢,让我们看看大神是怎么统计的。
生信技能树
2019/09/03
5530
我还需要和我的猫一起发文章吗?
读服务+写服务分离架构,我坚决反对!
第一点:对于调用方而言,调用同一个基础服务,要访问其RPC接口,究竟调用读服务,还是写服务,容易困惑。
架构师之路
2021/07/15
4270
读服务+写服务分离架构,我坚决反对!
MySQL InnoDB 共享表空间和独立表空间
导读:深入学习MySQL的时候总是习惯性的和Oracle数据库进行比较。在学习MySQL InnoDB的存储结构的时候也免不了跟Oracle进行比较。Oracle的数据存储有表空间、段、区、块、数据文件;MySQL InnoDB的存储管理也类似,但是MySQL增加了一个共享表空间和独立表空间的概念。
码农架构
2021/04/22
4.1K0
MySQL InnoDB 共享表空间和独立表空间
简单教你写xsync和xcall的脚本
xsync配置 xsync脚本基于rsync工具,rsync 远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点,它只是拷贝文件不同的部分,因而减少了网络负担。
全栈程序员站长
2022/09/02
4370
这代码写的太烂了!你以为我真想写“垃圾代码”吗?
很多时候作为底层的“码农”我们并没有选择权,然后我们的青春就浪费在了重复写垃圾代码里,浪费在了“项目目标里”,自己得到的也就是比正常小白领多一点的薪水,但是自己的发展空间被严重限制了
搜云库技术团队
2019/09/26
9880
系统临时文件的写和读:createTempFile和tempFileContent[通俗易懂]
文件被存在这个路径下:C:\Users\my\AppData\Local\Temp
全栈程序员站长
2022/07/27
3980
Java保护Excel工作簿和工作表
出于安全原因,你可能需要保护整个工作簿或工作表。 有时,你甚至可能还需要保护某个工作表,但却保留指定的单元格进行编辑。 本文将介绍如何使用Free Spire.XLS for Java来实现这些操作。
崔笑颜
2020/06/08
1.5K0
[Java 并发]读锁/写锁
之前我们都知道在一个变量被读或者写数据的时候每次只有一个线程可以执行,那么今天我们来看一下读写锁,读写两不误ReadWriteLock。
YanL
2020/04/29
1K0
[Java 并发]读锁/写锁
Golang 读、写文件
这种方式每次都会覆盖 test.txt内容,如果test.txt文件不存在会创建。
孤烟
2020/09/27
2.2K0
这些用 Python 写的牛逼程序/脚本,你玩过吗?
有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序/脚本是什么?」。本文摘编了 3 个国外程序员的多个小项目,含代码。
昱良
2019/07/14
1.5K0
我写代码很厉害吗?那都是同行的衬托。
2008年我刚毕业,那一年,是金融危机爆发的一年,也许也是年景不好,工作都特别难找,连网吧网管都有抢的。
Kiba518
2018/08/23
5420
使用 C# 写脚本的优势和方法
现在很方便就可以将 C# 作为某个脚本使用,本文这里的脚本指的是直接执行源代码的方式。现在是 2020 现在的 C# 默认在 dotnet 的支持下,可以作为脚本使用,本文将告诉大家使用 C# 写脚本的优势和方法
林德熙
2020/05/09
1.5K0
“似曾相识”的共享单车真的和共享出行一样吗?
文|孟永辉 世界上没有无缘无故的爱,也没有无缘无故的恨。一个事物飞速发展的背后必然有很深的市场原因,共享单车也是如此。在这个被称作资本寒冬的时代,共享单车的表现完全能够用另类来形容,不断刷新着人们对于资本寒冬的认知。作为一个有着非常浓厚的“互联网+”味道的存在,共享单车能够在资本寒冬下获得如此多的关注不能不说是一个互联网界的“黑天鹅”事件。 正如所有的“黑天鹅”事件都会有很深的社会背景和市场背景一样,共享单车的异军突起同样有非常深层次的原因。对于共享单车异军突起的原因已经有过很多表述和探讨,在这里我们不做
孟永辉
2018/05/11
5840
我在工作中写React,学到了什么?
我工作中的技术栈主要是 React + TypeScript,这篇文章我想总结一下如何在项目中运用 React 的一些技巧解决一些实际问题,本文中使用的代码都是简化后的,不代表生产环境。生产环境的代码肯定比文中的例子要复杂很多,但是简化后的思想应该是相通的。
ssh_晨曦时梦见兮
2022/03/09
9140

相似问题

我能用PHP读/写Google Fusion表吗?

12

我能同时写和读SocketChannel吗?

14

检查Google融合表的读/写权限

15

共享包含脚本的Google工作表

10

Groovy和POI:我可以同时读/写吗?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文