我对Google AppScript还是陌生的,尝试编写一个自定义REST API的连接器。对于该API,我需要每个用户一个API密钥(或密钥)。由于在脚本中以纯文本形式存储秘密不是最好的主意,因此我想将其存储在Google PropertyService中并从那里检索它。像这样:
var userProperties = PropertiesService.getUserProperties();
var apiKey = userProperties.getProperty('MY_SECRET')
但是我不明白的是,用户如何才能首先存储密钥?我找不到用户(在本例中为我)可以查看或编辑属性的任何地方。然后,我发现了这个不错的introduction to user properties,它在脚本容器中创建了一个菜单,允许用户手动输入机密。
const API_KEY = 'API_KEY';
var ui = SpreadsheetApp.getUi();
var userProperties = PropertiesService.getUserProperties();
function onOpen(){
ui.createMenu('API Keys')
.addItem('Set API Key', 'userPromptApiKey')
.addItem('Delete API Key', 'deleteApiKey')
.addToUi();
}
function userPromptApiKey(){
var userValue = ui.prompt('API Key ', ui.ButtonSet.OK);
// ToDo: add current key to the prompt
userProperties.setProperty(API_KEY, userValue.getResponseText());
}
function deleteApiKey(){
userProperties.deleteProperty(API_KEY)
}
问题是,我的脚本未绑定到任何容器(没有电子表格,没有文档)。相反,我想稍后在Google DataStudio中使用它。这就是为什么
SpreadsheetApp.getUi();
不起作用。关于如何处理的任何想法或建议?还有其他建议的方法来处理这些秘密吗?