Google Apps Script "Script Properties" 真的"Project Properties"吗?正确的范围是什么?



Google文档指出PropertiesServices.getScriptProperties()的作用域是Script。

然而,我有一个工作例子似乎与此相矛盾。

我有一个项目,里面有三个脚本(选项卡);最后运行时间";在CCD_ 2中。如果这些CCD_ 3的范围真的是";每个脚本";那么我希望能够为每个脚本(选项卡)存储不同的值。

但我发现,每次执行一个脚本(选项卡)时,它都会覆盖"的值;最后运行时间";由其他脚本(选项卡)保存的。

这似乎表明ScriptProperties的作用域实际上是每个项目,而不是每个脚本。

有人能证实这一点吗,或者告诉我我误解了什么?

(我已经在谷歌文档页面上留下了反馈)

是的,ScriptProperties对整个脚本项目是通用的。项目中文件的概念纯粹是为了组织方便;文件";在单个谷歌应用程序脚本"中;项目";表示一个";脚本"。

通常,如果我需要跟踪多个上次执行时间值,我会为每个值设置一个唯一的属性:

Action1_LastExecuteTime
Action2_LastExecuteTime

等等。。

另一个例子是脚本授权,当用户授权一个范围时,它处于项目级别,该授权适用于项目中的任何代码。

前言

作用域脚本(或项目)之间有一个重要区别。

属性

PropertiesService作用域的资源访问到特定的访问级别,每个资源都确定在不同的执行上下文(独立的,绑定到文档或Web应用程序)中将共享和不共享。有3个访问级别具有不同的作用域:

  1. 脚本-所有用户都可以使用,可以说是全局范围
  2. 文档-所有用户都可以使用,但仅限于当前(容器)文档
  3. 用户-仅限于运行脚本的用户

项目

应用程序脚本项目具有定义明确且一致的含义,引用文档:

脚本项目表示Google Apps脚本中的文件和资源集合

请注意,脚本项目不仅仅是其文件的总和,它还有资源的概念。目前有3组资源可以与应用程序脚本项目关联

  1. 库-充当模块的替身
  2. 云平台项目-控制配额、权限和访问
  3. 高级谷歌服务-围绕相应REST API的精简包装器

这如何回答这个问题

尽管CCD_ 6方法处理";脚本";它所做的范围如此之大,以至于所表示的资源(属性存储)将在脚本的执行上下文中的任何地方都可以访问(前提是可访问,ofc),而不是项目,因为它所代表的不止于此。

当多个项目共享库的ScriptProperties(如果它公开了它们)时,库带来的复杂性使差异变得更加明显,但每个都有自己的实例。

的确,术语表指出脚本项目是";有时简称为";脚本"但它并没有说,每当你遇到术语";脚本";你可以用";项目";,反之亦然。

整体结构可视化:

+----------------------------------+|项目||+-------------------------------+|||脚本||||+-------------------------+|||||.gs文件|||||+-------------------------+||||+-------------------------+|||||.html文件|||||+-------------------------+||||+-------------------------+||||| appsscript.json清单|||||+-------------------------+|||+-------------------------------+||+-------------------------------+|||资源||||+-------------------------+|||||库|||||+-------------------------+||||+-------------------------+|||||云平台项目|||||+-------------------------+||||+-------------------------+|||||高级谷歌服务|||||+-------------------------+|||+-------------------------------+||+-------------------------------+|||属性||||+-------------------------+|||||脚本属性|||||+-------------------------+||||+-------------------------+|||||文档属性|||||+-------------------------+|||||用户属性|||||+-------------------------+|||+-------------------------------+|+----------------------------------+

最新更新