Google apps script 谷歌应用程序脚本中是否有存储私钥的地方或方式?
我现在正在用谷歌应用程序脚本做一个小项目。我需要做的是向API发出GET和POST请求。我现在正在处理一个GET请求,并编写了下面的代码Google apps script 谷歌应用程序脚本中是否有存储私钥的地方或方式?,google-apps-script,httprequest,api-key,Google Apps Script,Httprequest,Api Key,我现在正在用谷歌应用程序脚本做一个小项目。我需要做的是向API发出GET和POST请求。我现在正在处理一个GET请求,并编写了下面的代码 var myApiKey = "123456789" const requestServer = (path, method, params = {}) => { if (method.toUpperCase() === "GET"){ var url = "https://api.xyz.c
var myApiKey = "123456789"
const requestServer = (path, method, params = {}) => {
if (method.toUpperCase() === "GET"){
var url = "https://api.xyz.com/" + path + "apikey=" + myApiKey;
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var data = JSON.parse(json);
} else if (method.toUpperCase() === "POST"){
}
}
我用假url和apikey来问这个问题。
我的问题是,是否有一个地方或一种方法可以在Google应用程序脚本中存储myApiKey,比如.env文件?
如果是这样的话,我应该如何存储和隐藏我的密钥…为了实现您的目标,下面三种模式如何 模式1: 在这个模式中,如何使用属性服务?当脚本运行时,可以使用Properties服务放置和检索该值 在这种情况下,首先需要将值输入到Properties服务 示例脚本:
var scriptProperties = PropertiesService.getScriptProperties();
// Put value.
scriptProperties.setProperty("key", "value");
// Get value.
var value = scriptProperties.getProperty("key");
var fileId = ScriptApp.getScriptId();
// Put value.
Drive.Files.update({properties: [{key: "key", value: "value"}]}, fileId);
// Get value.
var savedKey = "key";
var obj = Drive.Files.get(fileId).properties.filter(({key}) => key == savedKey);
if (obj.length == 0) throw new Error("No property for the inputted key");
var value = obj[0].value;
// Put value.
DriveApp.createFile("sample.txt", "value");
// Get value.
var value = DriveApp.getFileById("###fileId###").getBlob().getDataAsString().trim();
模式2:
在此模式中,如何使用自定义文件属性?可以使用驱动器API放置和检索该值
在这种情况下,首先需要将值输入到自定义文件属性中
示例脚本:
var scriptProperties = PropertiesService.getScriptProperties();
// Put value.
scriptProperties.setProperty("key", "value");
// Get value.
var value = scriptProperties.getProperty("key");
var fileId = ScriptApp.getScriptId();
// Put value.
Drive.Files.update({properties: [{key: "key", value: "value"}]}, fileId);
// Get value.
var savedKey = "key";
var obj = Drive.Files.get(fileId).properties.filter(({key}) => key == savedKey);
if (obj.length == 0) throw new Error("No property for the inputted key");
var value = obj[0].value;
// Put value.
DriveApp.createFile("sample.txt", "value");
// Get value.
var value = DriveApp.getFileById("###fileId###").getBlob().getDataAsString().trim();
模式3:
在这种模式中,使用临时文件怎么样?在这种情况下,可以像.env file
一样使用它。首先,将值放入文件(在本例中,我认为可以使用文本文件和Google Docs文件)。并且,当脚本运行时,将从文件中检索该值并在脚本中使用它
示例脚本:
var scriptProperties = PropertiesService.getScriptProperties();
// Put value.
scriptProperties.setProperty("key", "value");
// Get value.
var value = scriptProperties.getProperty("key");
var fileId = ScriptApp.getScriptId();
// Put value.
Drive.Files.update({properties: [{key: "key", value: "value"}]}, fileId);
// Get value.
var savedKey = "key";
var obj = Drive.Files.get(fileId).properties.filter(({key}) => key == savedKey);
if (obj.length == 0) throw new Error("No property for the inputted key");
var value = obj[0].value;
// Put value.
DriveApp.createFile("sample.txt", "value");
// Get value.
var value = DriveApp.getFileById("###fileId###").getBlob().getDataAsString().trim();
参考资料:
service/propertyService.gs
是示例文件名。因此,当您测试脚本时,请将脚本复制并粘贴到脚本编辑器中。这样,您就可以使用脚本了。@Yuuu谢谢您的回复。我不得不再次为我糟糕的英语水平道歉。不幸的是,我无法从你的回复中了解你目前的情况。如果我提出的答案对您的情况没有帮助,我对此表示歉意,并希望对其进行修改。那么,我能问一下你目前的情况吗?