【问题标题】:Updating multiple appscript projects from one appscript从一个应用脚本更新多个应用脚本项目
【发布时间】:2022-01-17 15:31:00
【问题描述】:

我有一个场景,我有 60 多张工作表,并且背后都有 appscript 项目运行和管理这些工作表。 我想从一个不同的项目一次更新/控制这些 appscript 项目。这样我就不必手动去更新它们了。

我知道这个solution,我们可以通过从单个 appscript 项目手动获取 OAuth 令牌来更新它,但是,有什么方法可以让我们只提及 sheetID 并同时更新所有这些工作表后面的项目?

【问题讨论】:

    标签: google-apps-script google-drive-api google-apps-script-api


    【解决方案1】:

    问题

    有什么方法可以让我们只提及 sheetID 并同时更新所有这些工作表后面的项目?

    没有直接的方法可以做到这一点。相关 issueRetrieving Project ID of Container-Bound script(创建于 2018 年,截至 2021 年底仍为“新建”状态)。

    假设“SheetID”是指电子表格 ID,则可以使用电子表格服务和驱动器服务分别获取类电子表格或类文件对象。不幸的是,这些类没有任何方法来检索有界的 Google Apps 脚本项目。

    Sheets API、Drive API 和 Apps Script API 也是如此。

    间接方法是构建电子表格列表及其各自的有界脚本,但很明显这不是您要寻找的。无论如何,建立电子表格/脚本项目对的列表并将其存储在某处(如果列表不是humongous,它可能是电子表格。CLAPS has a command 以检索最近项目的列表,并且可以获得容器ID来自脚本项目元数据(见https://developers.google.com/apps-script/api/reference/rest/v1/projects/get

    考虑到上述情况,让“下次”更容易维护脚本的建议是使用库或创建和附加组件。

    资源

    相关

    【讨论】:

    • 感谢 Clasp 解决方法看起来我可以尝试,我还想问一件事,我有很多工作表实际上使用库,但是在工作表中添加这些库时,我将其设置为静态版本,现在当我更新主项目并重新发布它时,新更改不适用于当前正在使用库的那些工作表,直到我在新版本上再次设置它,我知道我在这里做错了!
    • @vector 我认为,在使用该库的电子表格上,您应该将项目切换为使用旧版编辑器,以便能够使用“开发模式”。有关详细信息,请参阅developers.google.com/apps-script/guides/libraries,如果您需要进一步的帮助,请发布一个新问题。
    【解决方案2】:

    如果您要问是否可以在新代码中引用同一文档中的不同代码但不能引用同一工作表,答案是肯定的。但是,除了编辑原始代码之外,没有其他方法可以操作此代码。我会推荐manually getting an OAuth Token from a single Apps Script Rroject

    【讨论】:

    • 感谢您的回复。我可以使用该解决方案,但我没有这些工作表的脚本 ID,我不想手动查找它,而且每天的工作表数量都在增加。只是想找到一种方法,让我可以在一个项目中管理这些工作表背后的脚本,以简化我的工作。
    • 嗨 - 我认为这是不可能的,所以我的回答是唯一的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多