Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Google apps script 如何获取项目中所有函数的列表?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何获取项目中所有函数的列表?

Google apps script 如何获取项目中所有函数的列表?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想以编程方式在Google Apps中获取项目中所有函数的列表。在任何服务中似乎都没有一个方法可以轻松地提取它们,除了它似乎以某种方式存储在.this函数中。最好的方法是什么? 您想要检索函数的列表 您希望使用谷歌应用程序脚本实现这一点 我可以像上面那样理解。如果我的理解是正确的,那么这个答案呢?请把这看作是几个答案中的一个 模式1: 在此模式中,应用程序脚本API用于检索函数列表。使用Apps脚本API的projects.getContent方法时,可以检索Google Apps脚本项目中

我想以编程方式在Google Apps中获取项目中所有函数的列表。在任何服务中似乎都没有一个方法可以轻松地提取它们,除了它似乎以某种方式存储在.this函数中。最好的方法是什么?

  • 您想要检索函数的列表
  • 您希望使用谷歌应用程序脚本实现这一点
我可以像上面那样理解。如果我的理解是正确的,那么这个答案呢?请把这看作是几个答案中的一个

模式1: 在此模式中,应用程序脚本API用于检索函数列表。使用Apps脚本API的projects.getContent方法时,可以检索Google Apps脚本项目中的所有函数名

请尝试以下API: 首先,作为一个测试用例,您可以在上测试它。使用此选项时,请将脚本ID和
文件(functionSet,name)
设置为
字段

示例脚本: 这是谷歌应用程序脚本的一个示例脚本。使用应用程序脚本API的projects.getContent方法。在使用此脚本之前,请执行以下设置

设置:
  • 添加
    https://www.googleapis.com/auth/script.projects.readonly
    到作用域
  • 在API控制台启用应用程序脚本API
  • 复制并粘贴以下示例脚本
  • 运行
    myFunction()
  • 这样,可以检索所有函数的列表

    脚本: 模式2: 在该模式中,使用
    。你的问题也提到了这一点。在这种情况下,不使用API。请将以下脚本复制并粘贴到脚本编辑器中,然后运行
    myFunction()
    。这样,可以检索所有函数的列表

    示例脚本: 注:
    • 此外,两种模式都可以检索每个函数的脚本
    参考资料:

    如果我误解了你的问题,而这不是你想要的方向,我道歉。

    谢谢!你正确理解了我的问题,模式2正是我想要的。我想避免使用API。我从模式2测试了您的脚本,它准确地记录了函数。@Jeff感谢您的回复。我很高兴你的问题解决了。也谢谢。在哪里可以了解有关此
    字段=文件(functionSet%2Cname)
    @Cooper的更多信息?我可以从
    学习吗?在我的情况下,我使用。此API检索的值包括Google API的所有值。由此,我检查字段值。GoogleAPI发现服务有两种方法:list和getRest。当api名称和版本已知时,可以通过getRest方法直接检索这些值。这个方法对我来说更简单。或者我认为也可以从每个方法的“响应体”中检查字段值。如果这些不是您期望的方向,我很抱歉。模式2工作得很好,但它不会在HTML中的任何脚本中包含函数
    
    function myFunction() {
      var scriptId = "###"; // Please set the script ID here.
    
      var url = "https://script.googleapis.com/v1/projects/" + scriptId + "/content?fields=files(functionSet%2Cname)";
      var options = {
        "method" : "get",
        "headers": {"Authorization": "Bearer " +  ScriptApp.getOAuthToken()},
      };
      var res = UrlFetchApp.fetch(url, options);
      Logger.log(res.getContentText())
    }
    
    function myFunction() {
      for (var key in this) {
        if (typeof this[key] == "function") {
          Logger.log(key)
        }
      }
    }