Javascript 附加到Google表单-常量变量-永久保存值

Javascript 附加到Google表单-常量变量-永久保存值,javascript,html,google-apps-script,google-forms,Javascript,Html,Google Apps Script,Google Forms,我正在创建一个谷歌表单插件。用户在侧边栏中指示要使用的文件以及文件将在Google Drive中放置的位置。插件需要将这两个变量永久保存在服务器上。如何保存用户设置 右边是我的HTML边栏,当此表单的所有者创建问题和答案类型时 <!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <div> <

我正在创建一个谷歌表单插件。用户在侧边栏中指示要使用的文件以及文件将在Google Drive中放置的位置。插件需要将这两个变量永久保存在服务器上。如何保存用户设置

右边是我的HTML边栏,当此表单的所有者创建问题和答案类型时

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
  <div>
      <form id="myForm" onsubmit="handleFormSubmit(this)">
      Link to your document:
      <br>
      <input type="text" name="document"><br><br>
      Link to your folder in your Google Drive:
      <br>
      <input type="text" name="drive"><br><br>
      <input type="submit" value="Prześlij">
    </form>
  </div>
  <br>
  <script>
        function handleFormSubmit(formObject) {        
          google.script.run.withSuccessHandler(close).processForm(formObject);  
      }

      function close() {
        google.script.host.close();
      }

  </script>
  </body>
</html>



现在效果很好。下面是我从表单中保存变量的函数。我在表单中添加了一个额外的输入,这就是为什么这里是mail变量

var scriptProperties = PropertiesService.getScriptProperties();

function processForm(formObject) {
var ui = FormApp.getUi(); 
var linkToDoc = formObject.document; 
ui.alert ('Link to doc: '+linkToDoc);
var idOfDoc = linkToDoc.match(/[-\w]{25,}/);
ui.alert ('ID of doc: '+ idOfDoc);
var linkToDrive = formObject.drive; 
ui.alert ('Link to drive: '+linkToDoc);
var idOfDrive = linkToDrive.match(/[-\w]{25,}/);
ui.alert ('ID of folder in Google Drive: '+ idOfDrive);
var mail = formObject.mail;
ui.alert('Your email: '+mail);
var myJSON = JSON.stringify(idOfDoc);
var myJSON2 = JSON.stringify(idOfDrive);  
var myJSON3 = JSON.stringify(mail);
var myJSON4 = JSON.stringify(linkToDoc);
var myJSON5 = JSON.stringify(linkToDrive); 
scriptProperties.setProperty('doc', myJSON);
scriptProperties.setProperty('drive', myJSON2);
scriptProperties.setProperty('mail', myJSON3);
scriptProperties.setProperty('linkdoc', myJSON4);
scriptProperties.setProperty('linkdrive', myJSON5);
}

你能分享你的错误吗?要将用户输入存储在何处?属性服务可用于持久存储,通常用于存储用户设置。Properties服务中的数据存储为键/值对,值只能是字符串。数据不能存储为对象,但可以在存储对象之前先对对象进行字符串化。属性服务对键长度、值长度和总数据量有限制。可以通过“帮助”菜单中的“代码编辑器”访问文档。@是的,就是这样。我用过它,效果很好。问题解决了。
var scriptProperties = PropertiesService.getScriptProperties();

function processForm(formObject) {
var ui = FormApp.getUi(); 
var linkToDoc = formObject.document; 
ui.alert ('Link to doc: '+linkToDoc);
var idOfDoc = linkToDoc.match(/[-\w]{25,}/);
ui.alert ('ID of doc: '+ idOfDoc);
var linkToDrive = formObject.drive; 
ui.alert ('Link to drive: '+linkToDoc);
var idOfDrive = linkToDrive.match(/[-\w]{25,}/);
ui.alert ('ID of folder in Google Drive: '+ idOfDrive);
var mail = formObject.mail;
ui.alert('Your email: '+mail);
var myJSON = JSON.stringify(idOfDoc);
var myJSON2 = JSON.stringify(idOfDrive);  
var myJSON3 = JSON.stringify(mail);
var myJSON4 = JSON.stringify(linkToDoc);
var myJSON5 = JSON.stringify(linkToDrive); 
scriptProperties.setProperty('doc', myJSON);
scriptProperties.setProperty('drive', myJSON2);
scriptProperties.setProperty('mail', myJSON3);
scriptProperties.setProperty('linkdoc', myJSON4);
scriptProperties.setProperty('linkdrive', myJSON5);
}