Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在google应用程序脚本中使用Logger记录值_Javascript_Logging_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 无法在google应用程序脚本中使用Logger记录值

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(

这是我的HTML代码,单击load按钮时,我从中调用函数
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中根本找不到空垃圾

追求的功能与文件不同。setTrashed(true)将必要性解读为:清空垃圾箱,而不是“将文件放入垃圾箱”,“将文件标记为垃圾箱”;对于直接或通过垃圾箱删除数千个文件,任何“交互式”选项都不可行

  • 使用驱动器的GAS不可能直接永久删除文件
  • “删除”的语义谷歌承认谷歌硬盘客户端API中存在:

  • 无法从中调用,并且在服务器端没有等效的
  • 我想不出有哪一个英语短语能充分抓住这一明显遗漏的含义,否则,这一遗漏在经济上也是如此

但是也许有人可以提供(?未记录的)GAS Apps脚本调用反例

当您单击
load\u按钮时,您是否可以首先确认
loadClient()
的任何其他部分是否正常工作?我不认为您需要使用
eval()
这是为什么?gapi也是一个PHP类,不是吗?我不认为这是一个应用程序脚本类。它看起来像是在试图将客户端JavaScript代码放入HTML中。如果代码位于
https://apis.google.com/js/api.js
是希望在浏览器中运行的客户端代码,然后可以使用脚本标记的
src
属性<代码>
FYI
gapi
是。感谢您指出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.