gpt4 book ai didi

google-apps-script - 如何使用 GAS 中的 Properties 服务正确存储全局值?

转载 作者:行者123 更新时间:2023-12-04 00:36:00 35 4
gpt4 key购买 nike

我在使用 Google 应用程序脚本时遇到了这个问题。我在电子表格中有一个菜单,其中有两个选项(设置密码和添加时间记录)。这些选项分别引发一个 UI 服务用户界面以提示其数据。为了访问添加时间记录,我之前询问用户是否已通过身份验证。我使用 scriptProperties = PropertiesService.getScriptProperties() 和 setProperty('authenticated', false) 来保存 authenticated 的初始值。

1- 我点击“设置密码”,登录成功并关闭用户界面。

2- 我单击添加时间记录,我希望收到我的添加时间记录用户界面(因为我先设置密码),但我收到的却是设置密码用户界面。即使我再次登录,我也会收到相同的用户界面……一次又一次。

无论我之前执行的操作如何,每次我单击菜单选项时,身份验证都会重置为 false。这是预期的行为?或者我做错了什么?非常感谢您的帮助。

var scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('authenticated', 'false');
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('ProWorkflow')
.addItem('Set Pasword', 'getPassword').addSeparator()
.addItem('Add Time Record', 'isAuthenticated').addSeparator()
.addToUi();
}
function isAuthenticated()
{
var scriptProperties = PropertiesService.getScriptProperties();
var value = scriptProperties.getProperty('authenticated');
if(value =='false'){
getPassword(); // at the end of this function I set scriptProperties.setProperty('authenticated', ‘true’);
}
return addTimeRecord();
}
function getPassword(e)
{



var scriptProperties = PropertiesService.getScriptProperties();
var value = scriptProperties.getProperty('authenticated');
value = 'true';
scriptProperties.setProperty('authenticated', value); //change de value of uthenticated
return app.close();
}

最佳答案

如果您想以编程方式进行设置,我不清楚在哪里可以设置项目属性。我在脚本中添加了一个函数:

function setScriptProperties() {
var scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('KEY', 'Some value.');
}

然后我使用 UI 从 GAS 界面“手动”运行此功能。

enter image description here

从 UI 调用函数一次后,项目属性就设置好了。

关于google-apps-script - 如何使用 GAS 中的 Properties 服务正确存储全局值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455753/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com