Clasp - 在 Typescript 中使用环境变量机密进行 Google Apps 脚本开发

d-_*_*_-b 2 google-apps-script typescript clasp

有没有一种简单的方法可以不在 Google Apps 脚本项目中对机密进行硬编码?

我正在使用 clasp 并按照本指南中所述在 Typescript 中进行开发。

目前,我的脚本(Main.ts)将有一些硬编码的秘密,我不希望这些秘密出现在我的版本控制中,并且理想情况下可以根据某些环境变量进行交换。

Aar*_*Lee 6

在 Google Apps 脚本中将机密信息置于版本控制之外的一种方法是使用PropertiesService

使用这样的函数存储秘密

function storeSecrets() {
    PropertiesService.getScriptProperties().setProperties({
        'secret1': 'mySuperSecretPassword',
        'secret2': 'mySecretApiKey',
        // etc...
    })
}
Run Code Online (Sandbox Code Playgroud)

您必须执行clasp push此操作并从编辑器(或)运行一次clasp run storeSecrets,然后删除该函数,所有这些都无需提交版本控制

完成后,您可以通过代码访问存储的秘密,例如

let apiKey = PropertiesService.getScriptProperties().getProperty('secret2')
Run Code Online (Sandbox Code Playgroud)

请注意,具有项目编辑权限的任何人仍然可以访问这些机密;这个工作流程只会让他们无法致力于版本控制。