我相信你的问题是由于你试图将一个uiapp元素作为响应参数传递.这里有一些html服务脚本的变化.
该演示
脚本:
// #### Part A function doGet(e) { var html =""; // a text to be passed to script B html+=""; // a place to display script B answer html+=""; // function to show the result of the urlfetch (response of script B) return HtmlService.createHtmlOutput(html); } function myClickHandler(text) { var url = ScriptApp.getService().getUrl(); var payload = { name : "Gene", text : text, time : new Date() }; var params = { method : "post", payload : payload } Logger.log("text: "+text); var HTTPResponse; try{ HTTPResponse = UrlFetchApp.fetch(url, params); }catch(e){ Logger.log(e); } return HTTPResponse.getContentText(); } // ###### Part B function doPost(e){ if(typeof e === 'undefined'){ return "e was empty!!"; } var htmlOut="
你是不是谁触发脚本B.之一,这是一个脚本这是触发脚本 - 需要注意的是,你将不必拿到剧本B的记录事件的能力(因为它被触发时,你是不是有很重要B和脚本A在制作urlfetch时未被识别为"你".如果要获取脚本b logger的结果,则应将其返回到脚本a.重要的是要注意:再次,当脚本A对脚本B执行UrlFetch时,它不会被识别为"您",因此脚本B必须接受任何人打开(在"谁有权访问应用程序"下的发布选项中)你需要选择任何人甚至匿名).
注意:我把所有东西放在同一个脚本中用于商品(你可以将它分成两个不同的脚本,这不是问题),因为B部分需要访问匿名人员,我无法自动检索A部分中的电子邮件地址所以我改变了一点在这里做了什么.
我相信你的问题是由于你试图将一个uiapp元素作为响应参数传递.这里有一些html服务脚本的变化.
该演示
脚本:
// #### Part A function doGet(e) { var html ="<input type='text' id='text' /><input type='button' onclick='myClick()' value='submit'>"; // a text to be passed to script B html+="<div id='output'></div>"; // a place to display script B answer html+="<script>"; html+="function myClick(){google.script.run.withSuccessHandler(showResults).myClickHandler(document.getElementById('text').value);}"; // handler to do the job in script A html+="function showResults(result){document.getElementById('output').innerHTML = result;}</script>"; // function to show the result of the urlfetch (response of script B) return HtmlService.createHtmlOutput(html); } function myClickHandler(text) { var url = ScriptApp.getService().getUrl(); var payload = { name : "Gene", text : text, time : new Date() }; var params = { method : "post", payload : payload } Logger.log("text: "+text); var HTTPResponse; try{ HTTPResponse = UrlFetchApp.fetch(url, params); }catch(e){ Logger.log(e); } return HTTPResponse.getContentText(); } // ###### Part B function doPost(e){ if(typeof e === 'undefined'){ return "e was empty!!"; } var htmlOut="<ul>"; for(var i in e.parameter){ htmlOut+="<li>"+i+ " : " + e.parameter[i]+"</li>"; if(i=="text"){ htmlOut+="<li> Text hash : "+Utilities.base64Encode(Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, e.parameter[i]))+"</li>"; } } htmlOut+="</ul>"; return ContentService.createTextOutput(htmlOut); }
你是不是谁触发脚本B.之一,这是一个脚本这是触发脚本 - 需要注意的是,你将不必拿到剧本B的记录事件的能力(因为它被触发时,你是不是有很重要B和脚本A在制作urlfetch时未被识别为"你".如果要获取脚本b logger的结果,则应将其返回到脚本a.重要的是要注意:再次,当脚本A对脚本B执行UrlFetch时,它不会被识别为"您",因此脚本B必须接受任何人打开(在"谁有权访问应用程序"下的发布选项中)你需要选择任何人甚至匿名).
注意:我把所有东西放在同一个脚本中用于商品(你可以将它分成两个不同的脚本,这不是问题),因为B部分需要访问匿名人员,我无法自动检索A部分中的电子邮件地址所以我改变了一点在这里做了什么.