Javascript 无法在google应用程序脚本中使用Logger记录值
这是我的HTML代码,单击load按钮时,我从中调用函数Javascript 无法在google应用程序脚本中使用Logger记录值,javascript,logging,google-apps-script,google-sheets,Javascript,Logging,Google Apps Script,Google Sheets,这是我的HTML代码,单击load按钮时,我从中调用函数loadClient //LOAD CLIENT BUTTON` document.getElementById("load_button").addEventListener('click',function(){ google.script.run.loadClient(); }); 下面是code.gs文件中的相应函数 //function02-loadClient function loadClient() { eval(
loadClient
//LOAD CLIENT BUTTON`
document.getElementById("load_button").addEventListener('click',function(){
google.script.run.loadClient();
});
下面是code.gs文件中的相应函数
//function02-loadClient
function loadClient() {
eval(UrlFetchApp.fetch('https://apis.google.com/js/api.js').getContentText());
return gapi.client.load("https://content.googleapis.com/discovery/v1/apis/webmasters/v3/rest")
.then(function() { Logger.log("GAPI client loaded for API"); },
function() { Logger.log("Error loading GAPI client for API" ); });
}
在客户端环境中调用
google.script.run
时,您正在请求执行服务器端应用程序脚本函数
在服务器端应用程序脚本执行的上下文中,loadClient()
的实现没有意义
下面是一个完整的简单示例,通过客户端按钮单击成功触发服务器端的Logger.log()
调用:
client.html
单击按钮后的服务器端日志记录结果
关于,这并不意味着要在应用程序脚本服务器端上下文中使用。应用程序脚本的全部要点是存在。除了不兼容之外,尝试在服务器端应用程序脚本上下文中加载客户端JS库也是多余的 类似地,尝试在客户端应用程序脚本代码中使用客户端JS库也没有太大意义,因为您可以通过下载获得完整的服务器端功能。“尝试在服务器端应用程序脚本上下文中加载客户端JS库是完全多余的。” 当G.未能提供/实施/披露未在服务器端实施的客户端方法时,…不是多余的;e、 g: Drive.files.emptyTrash()
- 在GA应用程序脚本服务器端js调用引用URL中根本找不到空垃圾
- 使用驱动器的GAS不可能直接永久删除文件
- “删除”的语义谷歌承认谷歌硬盘客户端API中存在:
- 无法从中调用,并且在服务器端没有等效的李>
- 我想不出有哪一个英语短语能充分抓住这一明显遗漏的含义,否则,这一遗漏在经济上也是如此
但是也许有人可以提供(?未记录的)GAS Apps脚本调用反例当您单击
load\u按钮时,您是否可以首先确认loadClient()
的任何其他部分是否正常工作?我不认为您需要使用eval()
这是为什么?gapi也是一个PHP类,不是吗?我不认为这是一个应用程序脚本类。它看起来像是在试图将客户端JavaScript代码放入HTML中。如果代码位于https://apis.google.com/js/api.js
是希望在浏览器中运行的客户端代码,然后可以使用脚本标记的src
属性<代码>
FYIgapi
是。感谢您指出Google API客户端库在Google应用程序脚本中是多余的,有没有其他方法来实现这一点?我不知道您想要实现什么。在应用程序脚本中,与谷歌服务交互的标准方式是通过默认情况下公开的众多API(DriveApp、MailApp、SpreadsheetApp等)查看我在回答中链接的文档。我正在尝试复制谷歌制作的插件的功能::高级脚本功能中没有搜索控制台API,我查了你提供的洗衣单。感谢您要与默认情况下未包含的API交互,您可以使用它来促进身份验证。供参考。仅供参考。请特别注意存储库中的。这里有两个与没有安装应用程序脚本服务的Google API交互的例子。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<script>
function registerListener() {
document.getElementById('callServerFunction').addEventListener('click', function() {
google.script.run
.withSuccessHandler(function() {
alert("Successfully called server function.");
})
.withFailureHandler(function() {
alert("Failed to call server function.");
})
.serverFunction();
});
}
</script>
<body onload="registerListener()">
<button id="callServerFunction">Call Server Side Function</button>
</body>
</html>
function doGet() {
return HtmlService.createHtmlOutputFromFile('client');
}
function serverFunction() {
Logger.log("Server function called.");
}
[18-06-10 13:48:20:359 PDT] Server function called.