Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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独立脚本的方法_Google Apps Script - Fatal编程技术网

Google apps script 直接从驱动器执行Google独立脚本的方法

Google apps script 直接从驱动器执行Google独立脚本的方法,google-apps-script,Google Apps Script,嗯,我已经阅读了很长时间的文档,但像往常一样,它真的不清楚 我正在开发一个带有脚本编辑器的Google脚本,它已经按照预期工作了(除了驱动器之外,在任何G套件程序中都看不到它) 现在,执行它的唯一方法是打开脚本编辑器,按下“播放”按钮或“执行”栏,然后按下函数 显然,这不是一个解决方案,因为任何来自企业的人都可以修改/查看代码 所以问题是:我如何从这个脚本生成类似于“exe”的东西,我只需双击ckick(它显然位于驱动器上),它就会执行脚本? 我看到了,但似乎它说除了打开代码并从google应用

嗯,我已经阅读了很长时间的文档,但像往常一样,它真的不清楚

我正在开发一个带有脚本编辑器的Google脚本,它已经按照预期工作了(除了驱动器之外,在任何G套件程序中都看不到它)

现在,执行它的唯一方法是打开脚本编辑器,按下“播放”按钮或“执行”栏,然后按下函数

显然,这不是一个解决方案,因为任何来自企业的人都可以修改/查看代码

所以问题是:我如何从这个脚本生成类似于“exe”的东西,我只需双击ckick(它显然位于驱动器上),它就会执行脚本?


我看到了,但似乎它说除了打开代码并从google应用程序脚本编辑器执行之外没有其他方法…

从我对您的需求的理解来看,唯一的方法是将您的脚本部署为一个具有最小用户界面的web应用程序,例如一条确认正确执行的短消息

你永远不会有“本地”可执行文件,因为应用程序脚本中的所有内容都是在谷歌的服务器上完成的,而不是在我们的计算机上。相反,您将有一个url。。。(其优点是完全独立于操作系统!)


脚本将保持私有,除非您共享它,并且您可以选择谁可以使用该url。

Web应用程序由HTTPS GET或POST请求触发。你不需要使用谷歌硬盘

触发Web应用程序的方法:

  • Chrome扩展-您可以创建一个Chrome扩展来发出HTTPS GET或POST请求。用户需要安装Chrome扩展,Chrome扩展可以在浏览器中放置一个按钮
  • 链接-一些带有链接的HTML。包含链接的电子邮件。点击链接
  • 地址栏-浏览器的地址栏-每个浏览器的地址栏都会发出HTTPS GET请求,因此您可以直接从地址栏运行Web应用程序。将发布的Web应用程序url放入浏览器地址栏,然后单击浏览器用于加载页面的任何内容。(仅适用于GET请求)
  • 书签-用户可以将指向Web应用程序的链接添加书签。因此,他们需要单击书签中的链接
  • 任何可以发出HTTPS GET或POST请求的程序。例如,用Python或C++编写POST请求。
对于GET请求,您的脚本中需要一个
doGet()
函数,对于POST请求,您需要一个
doPost()
函数。

尝试以下操作:
  • 首先构建菜单
  • 单击“运行我的代码”
  • 单击“运行我的代码”按钮
  • runmycode.html:

    <!DOCTYPE html>
    <html>
      <head>
        <base target="_top">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>
        function runMyCode()
        {
          google.script.run
             .withSuccessHandler(updateMyDiv)
             .myFunctionName();
        }
        function updateMyDiv(hl)
        {
          document.getElementById('MyDiv').innerHTML+='<br />'+ hl;
        }
        </script>
      </head>
      <body>
      <input type="button" value="Run My Code" onclick="runMyCode()" />
       <div id="MyDiv"></div>
      </body>
    </html>
    

    你所要求的是不可能的,但是有一些类似的方法。那么,你能告诉我们你到底在用应用程序脚本做什么吗。。。真的很遗憾,这是不可能的。。。当我读到关于“独立脚本”的文章时,我觉得这是天堂。。。该脚本只获取文件夹中最后一个应该是csv(但分号分隔)的文档,并对其进行解析,使其以逗号分隔。然后删除除最后一个文档之外的所有文档。这就是为什么我不需要将脚本用于电子表格、文档或除驱动之外的任何东西,而且它不能做到这一点,这非常令人失望……您可以设置触发器来做到这一点。看到这里,我已经读过了,但我不知道我应该如何将它附加到我的脚本中,因为我不需要任何G套件程序,比如Sheets或任何东西。。。顺便说一下,脚本要编辑的文档总是会发生变化,因此每次都可能安装触发器。如果您需要按需立即执行应用程序脚本功能,则必须进入应用程序脚本控制台并手动执行该功能。这是唯一的办法。但是,如果你可以根据时间(比如每5小时)启动应用程序脚本功能,你可以这样做!下面是“以编程方式管理触发器”部分。我是否可以为Google Drive创建一个按钮,以这种方式按下并执行一个函数?(像一个“exe”文件,但有一个按钮是一个web应用)嗯,我不这么认为,我不知道驱动器中可能的自定义,对不起。非常感谢你提供了这种可行的方法。这里的重点是,非常遗憾的是,谷歌没有提供一种直接创建在驱动器上执行的脚本的方法,这种方法可以让你做一些有趣的事情,比如删除旧文档、解析我正在尝试的文档和长文档等等。最后,我尝试用一个谷歌表单,当你按下submit时,它会执行我编写的脚本(我之所以这么做,是因为我对G套件的谷歌脚本还不是很熟悉。)顺便说一句,祝你度过愉快的一天:)
    function myFunctionName() {
      return "Your function has run";
    }
    
    function startYourSideBar()
    {
       var ui=HtmlService.createHtmlOutputFromFile('runmycode');
       SpreadsheetApp.getUi().showSidebar(ui);
    }
    
    function buildMenu()
    {
      SpreadsheetApp.getUi().createMenu('Run My Code') 
         .addItem('Run My Code', 'startYourSideBar')
         .addToUi()
    }