【问题标题】:Call a custom GAS function from external URL从外部 URL 调用自定义 GAS 函数
【发布时间】:2015-07-19 13:03:42
【问题描述】:

我想调用我在 Google Apps 脚本中编写的自定义函数。当我执行 getJSON 时,我想它会自动运行我的 doGet(e)。

我的 Javascript:

$.getJSON(https://script.google.com/macros/s/[ID]/exec, function(data){ 
   //code here
});

有没有一种可能的方式来调用我的自定义函数之一

我的 Google Apps 脚本:

function getNumberOfFans(e){ 
   //code here
}

我是否必须在我的 URL 中添加某种额外的函数参数?

【问题讨论】:

    标签: google-apps-script web-applications


    【解决方案1】:
    • 在“独立”或绑定的 Apps 脚本文件中添加 doGet(e) 函数。
    • 将 Apps 脚本文件发布为 Web 应用程序。
    • 获取 Web 应用的已发布 URL。
    • 在 URL 末尾添加搜索字符串参数。

    您可以将搜索字符串参数添加到已发布的 Wep App 的 URL。

    这是一个例子:

    https://script.google.com/macros/s/[ID]/exec?searchStringName=functionOne
    

    搜索字符串位于 URL 的末尾,在 exec 之后。必须在exec 后面加一个问号,然后是name=value

    url/exec?name=value
    

    namevalue 将替换为您的选择。

    将事件参数(用字母“e”表示)放入doGet(e) 函数中,而不是您要使用的函数中。

    function doGet(e) {
      var passedString,whatToReturn;
    
      passedString = e.parameter.searchStringName;
      if (passedString === 'functionOne') {
        whatToReturn = functionOne();  //Run function One
      };
    
      return ContentService.createTextOutput(whatToReturn);
    };
    
    function functionOne() {
      var something;
    
      //. . . . Code;
      something = code here;
      return something;
    };
    

    以上代码用于 GET 请求。如果要使用 POST 请求,请不要在 URL 中使用搜索字符串。对于 POST 请求,您将在有效负载中发送信息。您仍将使用e.parameter 访问发送的数据,但e.parameter 中的任何内容都将是具有键/值对的对象。您需要知道在对象中发送的键(属性)名称是什么。

    有关 URL 参数的说明,请参阅此文档:

    URL Parameters

    【讨论】:

    • 不错的一个 - 我喜欢它!
    • 我总是收到错误消息:POST 调用的 401_client_error,并且无法在网上找到一个案例来说明 doPost 是如何工作的。任何想法?谢谢。
    • 您可能需要发布一个问题,详细说明您如何发出 POST 请求,以及您正在使用的 doPost(e) 函数。
    • @Albert:也许是因为您正在使用像 Postman 这样的 Rest 客户端进行测试?在我的情况下,它也不适用于邮递员。但是当我尝试使用普通的
      时,它按预期工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    相关资源
    最近更新 更多