Google Apps 脚本是否允许任何类型的内省?

2024-05-13

  1. Google Apps 脚本可以学习自己的名称吗?或者它的ID?

  2. 它可以获取其包含文件夹的 ID 吗?

  3. 它可以了解它在文件夹层次结构中的位置吗?

  4. 脚本“A”可以获取/设置脚本“B”的属性吗?

  5. 脚本“A”可以编辑脚本“B”使用的库的任何方面吗?

  6. 脚本“A”可以发布脚本“B”吗?

  7. 脚本“A”可以更改脚本“B”的文本吗?

更新时间 2014/10/03 16:00 美国东部时间

  1. 脚本“A”可以管理脚本“B”的版本吗?

  2. 脚本“A”可以对其自身执行 5、6、7 或 8 中的任何操作吗?


  1. Google Apps 脚本可以学习自己的名称吗?或者它的ID?

不是这样的。常见的做法是在脚本中创建一个包含其自己的 ID 的全局常量字符串。通过 ID,您可以获取脚本文件名

var SCRIPT_ID = 'abcdefghijklmnopqrstuvwxyz0123456789'; // Constant
...
var scriptFileName = DriveApp.getFileById(SCRIPT_ID).getName();

相反,如果您有脚本的文件名,则可以使用以下命令获取其 IDDriveApp.getFilesByName(name)然后打电话getId()在文件对象上。然而,由于多个文件可以具有相同的名称,因此您需要处理重复的可能性。

注意ScriptApp.getService().getUrl()将返回null除非脚本部署为 Web 应用程序,在这种情况下,它将返回 Web 应用程序界面的 URL,而不是脚本文件本身。

  1. 它可以获取其包含文件夹的 ID 吗?

是的。但是,请务必记住,云端硬盘中的文件可能会放置在多个文件夹中,因此有多个父文件夹。

function getScriptParent() {
  var thisScript = DriveApp.getFileById(myId);
  var parents = thisScript.getParents();
  while (parents.hasNext()) {
    var folder = parents.next();
    Logger.log(folder.getId());
  }
}
  1. 它可以了解它在文件夹层次结构中的位置吗?

通过查找每个祖先文件夹的父级,可以将文件的路径追溯到根。然而,同样,云端硬盘中的每个文件和文件夹都可以有多个父级,因此查找路径并不简单。如果您只有一个有效的路径,则可以仅采用每个文件/文件夹的第一个父级并向后退一步。如果您想要所有有效路径,那么您可能需要实现 BFS 或 DFS 来查找并记录所有路径。

  1. 脚本“A”可以获取/设置脚本“B”的属性吗?

没有办法访问脚本属性 https://developers.google.com/apps-script/reference/properties/properties来自另一个脚本的脚本。如果您想在脚本之间发送数据,最好的选择是使用某种外部数据存储,例如通过访问的 SQL 数据库JDBC https://developers.google.com/apps-script/reference/jdbc/jdbc.

  1. 脚本“A”可以编辑脚本“B”使用的库的任何方面吗?

如果您询问脚本 A 是否可以更改脚本 B 包含的库,那么不,这是不可能的。脚本 B 也无法以编程方式更改它使用的库 - 必须在脚本编辑器界面中进行这些选择。

  1. 脚本“A”可以发布脚本“B”吗?

No.

  1. 脚本“A”可以更改脚本“B”的文本吗?

No.

  1. 脚本“A”可以管理脚本“B”的版本吗?

No.

  1. 脚本“A”可以对其自身执行 5、6、7 或 8 中的任何操作吗?

大多数情况下不可以——只有 Web 应用程序部署可以通过编程方式进行控制。脚本可以通过以下方式将其自己的部署管理为 Web 应用程序:脚本应用程序服务 https://developers.google.com/apps-script/reference/script/service方法。请参阅ScriptApp.Service.enable(限制) https://developers.google.com/apps-script/reference/script/service#enable(Service.Restriction)方法以获取更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Apps 脚本是否允许任何类型的内省? 的相关文章

  • 如何编辑范围? // Google Classroom 控制 Google Apps 脚本中学生访问的权限范围

    我是一名高中老师 正在针对 Google Classroom 编写 Google Apps 脚本 我想创建一个类似于学生成绩视图的电子表格 我的学生可以使用他们的凭据进行访问 我已经成功编写了代码 这样我就可以通过在代码中显式放置学生的 I
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • Google Apps 脚本中 $.ajax() 的服务器端等效项是什么?

    我想在 Google App 脚本中从服务器端代码执行 HTTP 请求Authorization标头 是否有用于发送 HTTP 请求的 App Script API Google Apps 脚本中的这段代码相当于什么 var api URL
  • 为什么 Ruby 使用 respond_to?而不是respond_to?

    我很好奇为什么 Ruby 用于检查对象是否响应方法的内省相关方法是respond to 代替responds to 我总是觉得很尴尬 但也许那是因为我已经习惯了respondsToSelector在 Objective c 中 Matz p
  • Google Add-on 在有限模式应用脚本中添加菜单项

    我们在新的谷歌应用程序脚本添加商店中发布了一个插件 但在除安装的初始电子表格之外的任何电子表格中使用该插件时 权限似乎无法正常工作 我遇到一个问题 当创建新电子表格并且用户从 管理加载项 菜单中选择 使用此加载项 时 我们的菜单项不会填充
  • Python - 如何查询定义方法的类?

    我的问题有点类似于this one https stackoverflow com questions 5520580 how do you get all classes defined in a module but not impor
  • QUnit 删除依赖项上的方法会破坏针对该依赖项的测试

    在 Google Apps 脚本中 我正在对我正在开发的应用程序进行单元测试 使用 QUnit https github com simula innovation qunit tree gas gas 使用测试驱动开发 正在测试的代码 我
  • 选择列的最后一个值

    我有一个电子表格 G 列中有一些值 有些单元格之间是空的 我需要将该列中的最后一个值获取到另一个单元格中 就像是 LAST G2 G9999 除了那个LAST不是一个函数 类似的答案卡里加里的回答 https stackoverflow c
  • 如何在公式中的 & 之间添加换行符以生成 QR URL

    我正在谷歌表格中创建一个电子表格 用于跟踪财产房间的库存 我使用二维码作为标签 将其放置在房产上 并将与该特定房产的相关信息相关联 我正在使用以下代码 image https chart googleapis com chart chs 2
  • 在 Google 网站中嵌入 Google 电子表格时,Google Apps 脚本可帮助解决错误?

    电子表格 A 是欢迎新移民来到我们小镇的团队的主数据源 它里面有大量非常敏感的数据 不能公开 哪怕是一点点 我们谈论的是孩子的姓名和出生日期以及他们上学的地方 保证电子表格 A 的安全是至关重要的任务 因此 电子表格 B 使用 import
  • 使用 Google App Script 从一个电子表格跳转到另一个电子表格

    我有一个脚本 仅当我位于运行代码的当前工作表中时才有效 在 A1 中 我有一个复选框 其作用是刷新 api 请求 因此 我下面的代码单击复选框并获取新数据 所以我的代码的目的基本上是单击 A1 中的复选框 但是 运行此代码只会激活复选框 但
  • 如何在表单提交时运行 Appscript?

    我正在尝试创建当用户完成表单提交时重定向到网络应用程序的 Google 表单 我查过谷歌开发者文档 https developers google com apps script guides triggers 但我看不到一种简单的方法来做
  • Google App Script ContentService downloadAsFile 不起作用

    我有一个使用 Google App Script 开发的网络应用程序HtmlService并从 html 表单中 使用以下命令填充 Google 驱动器中的 Excel 工作表SpreadsheetApp 另一个部门正在打电话Content
  • 根据条件格式化货币

    Google Apps 脚本新手 但有一些 VBA 编码经验 我希望能够根据不同的单元格输入决定单元格的数字格式 eg Col A 客户名称 验证范围 B 栏 货币类型 英镑 美元 欧元 经过验证的列表 Col C 费用 100 用户免费类
  • 删除或删除云端硬盘中的特定文件

    我有一个每天早上 5 点运行的脚本 它将特定文件 data xls 移至垃圾箱 但是 由于 DocsList 已停用 该脚本不再起作用 并且我在更新它时遇到了问题 我在这里看到了几个删除 setTrashed 脚本 但它们似乎都适用于一组文
  • 自动从外部数据库加载 Google 电子表格数据

    我有一个共享的 Google 电子表格 工作表的某些列必须填充数据库服务器 PostgreSQL 中存在的数据 SQL 查询 此外 数据加载必须安排为自动完成 例如每天 1 点 最后 我需要在电子表格中进行一些调整 例如 加载后将日期时间放
  • Google Apps 脚本中的地图对象支持

    Google Apps 脚本是否支持Map https developer mozilla org en docs Web JavaScript Reference Global Objects Map object 当我尝试使用它时 我得
  • ReferenceError:未定义 ConferenceDataService

    我正在尝试开发像 Zoom 会议这样的谷歌日历插件 在 appsscript json 文件中 有以下代码 calendar conferenceSolution onCreateFunction createConference id 1
  • 与 google 脚本一起使用时,币安搜索 API 返回 403

    我正在使用 binance API 来获取 USDT 的价格 该 API 适用于邮递员 但不适用于 google 脚本 function fetchCryptoPricesFromApi const data page 1 rows 10
  • 如何使用 Google 脚本将数据添加到 Google 表格中的特定行

    在我的 Google 表格中 我将索引放在名为 colorRow 的变量中 我只是想向工作表中的该行添加一些数据 但数据不断进入页面下方的其他行 我究竟做错了什么 var data Some more fields in data arra

随机推荐