Javascript Kobotoolbox&;谷歌表单同步

Javascript Kobotoolbox&;谷歌表单同步,javascript,synchronization,google-sheets-api,Javascript,Synchronization,Google Sheets Api,我想在KoboToolbox(数据收集)和Google sheet之间进行同步,但代码不起作用:我需要自动更新数据,但它不起作用 //有关更多信息,请参见自述文件,可在 //https://github.com/kobotoolbox/kobocat-googleapps-scripts /*声明多次使用的全局变量*/ var app=UiApp.createApplication()//这将创建用于安装的应用程序 var current_sheet=SpreadsheetApp.getAc

我想在KoboToolbox(数据收集)和Google sheet之间进行同步,但代码不起作用:我需要自动更新数据,但它不起作用

//有关更多信息,请参见自述文件,可在
//https://github.com/kobotoolbox/kobocat-googleapps-scripts
/*声明多次使用的全局变量*/
var app=UiApp.createApplication()//这将创建用于安装的应用程序
var current_sheet=SpreadsheetApp.getActiveSpreadsheet()//这是当前的电子表格
var检查的URL=“”//这是用户在安装过程中选择的kobocat表单URL的占位符
/*****第1节-从这里到下一节的所有内容都是设置菜单项的一部分*****/
函数设置(){
//此函数从用户处获取信息,包括身份验证令牌以及哪个表单更新此工作表。
var description=app.createLabel('您必须通过访问http://kc.kobotoolbox.org/YOUR-USERNAME/api-token",对),;
var grid=app.createGrid(3,3);
setWidget(0,0,app.createLabel('API标记:');
setWidget(0,1,app.createTextBox().setName('token');
//创建一个垂直面板
var panel=app.createVerticalPanel();
//将说明和网格添加到面板中
面板。添加(说明);
面板。添加(网格);
//创建一个按钮并单击处理程序;将网格对象作为回调元素传入,并将处理程序作为单击处理程序传入
//将函数标识为服务器单击处理程序
var button=app.createButton('Submit');
var handler=app.createServerClickHandler('saveToken');
handler.addCallbackElement(网格);
addClickHandler(handler);
//将按钮添加到面板,将面板添加到应用程序,然后在电子表格文档中显示应用程序应用程序
面板。添加(按钮);
应用程序添加(面板);
当前工作表显示(应用程序);
}
函数saveToken(e){
var app=UiApp.getActiveApplication();
//首先清除“所有属性”
ScriptProperties.deleteAllProperties();
//保存令牌并通过消息框告知用户
ScriptProperties.setProperty('token',e.parameter.token);
msgBox(“已保存令牌”);
//现在,从kobocat获取表单列表,并询问用户哪个表单要更新此表单
setupScriptProperties();//获取每个用户表单的URL
askUser();//既然令牌已保存,请询问用户要更新此工作表的表单
}
函数askUser(){
//将脚本属性加载到数组中,以查看有多少表单
var num_forms=parseInt(ScriptProperties.getProperty('num_forms'))+1;//我们使用parseInt来确保返回的是整数,而不是字符串
//创建FlexTable以保存值
var table=app.createFlexTable().setId('table').setOrderWidth(1).setCellPadding(1)
//设置表的标题
setWidget(0,0,app.createLabel('formname'));
table.setWidget(0,1,app.createLabel(‘更新此表’);
//创建一个服务器处理程序,在复选框更改时处理该复选框
var check=app.createServerHandler('check');
检查.addCallbackElement(表);
//ScriptProperties将所有内容存储为字符串。我们必须将true和false字符串转换为可由复选框读取的布尔属性

对于(r=0;rIf如果没有人能帮忙,你应该试着把问题集中起来,写一个小的Hello J.Chomel,你如何帮助我请我对这个堆栈一无所知。阅读后试着问一个更具体的问题如果没有人能帮忙,你应该试着把问题集中起来,写一个小的Hello J.Chomel,你如何帮助我请我什么都不知道这一堆。阅读后,试着问一个更具体的问题