【问题标题】:How to Call Google Apps Script from Web Page如何从网页调用 Google Apps 脚本
【发布时间】:2013-02-16 20:49:53
【问题描述】:

为此进行了高低搜索。我有一个基本 HTML/CSS/JS 的网页。我希望用户能够访问该页面,并在打开页面时调用我制作的谷歌脚本,该脚本从电子表格中获取信息并在页面上显示其中的一些信息。我希望我不必像 Google 的教程那样做任何花哨的设置,因为它们都对我没有帮助。

我的网页 ----> Google 脚本 ----> Google 电子表格
我的网页

用户应该能够选择网页上显示的项目(从电子表格填充的项目)并单击一个按钮,该按钮将允许用户输入一个新页面,其 URL 源自所选项目。

这本质上是一个聊天室程序,其中聊天室存储在电子表格中。我希望用户也能够创建一个新的聊天室,该聊天室应该会更新 google 电子表格。

【问题讨论】:

    标签: javascript ajax google-apps-script


    【解决方案1】:

    研究使用 GET 参数。 https://stackoverflow.com/a/14736926/2048063.

    Here's a previous question on the topic.

    您可以使用e.parameter 在您的doGet(e) 函数中访问通过GET 传递的参数。如果你打电话给http://script.google......./exec?method=doSomething,那么

    function doGet(e) {
      Logger.log(e.parameter.method);
    }
    

    doSomething 将被写入日志,在这种情况下。

    可以使用ContentService 从脚本返回数据,它允许您提供 JSON(我推荐)。 JSON 最容易(在我看来)在 GAS 端制作,以及在客户端使用。

    最初的“填充列表”调用看起来像这样。我会用jQuery写,因为我觉得很干净。

    var SCRIPT_URL = "http://script.google.com/[....PUT YOUR SCRIPT URL HERE....]/exec";
    $(document).ready(function() {
        $.getJSON(SCRIPT_URL+"?callback=?",
                  {method:"populate_list"},
                  function (data) { 
                    alert(JSON.stringify(data)); 
                  });
    });
    

    以及产生这个的相应 GAS。

    function doGet(e) {
      if (e.parameter.method=="populate_list") {
        var v = {cat:true,dog:false,meow:[1,2,3,4,5,6,4]}; //could be any value that you want to return
        return ContentService.createTextOutput(e.parameter.callback + "(" + JSON.stringify(v) + ")")
            .setMimeType(ContentService.MimeType.JAVASCRIPT);
      }
    }
    

    这种方法称为JSONP,jQuery支持。当您将?callback=? 放在您的 URL 之后时,jQuery 会识别它。它将您的输出包装在一个回调函数中,该函数允许该函数以数据作为参数在您的站点上运行。在这种情况下,回调函数是在读取function (data) { 的行中定义的函数。

    【讨论】:

    • 我添加了几个示例代码段。希望这会有所帮助!
    • 菲尔的回答绝对好!
    • @Michael - 我同意,他肯定是这个论坛的下一个第一名(等几天^^)
    • @PhilBozak :我遵循了您的代码,除了将 e.parameter 更改为 e.parametersUtilities.jsonStringify(v) 更改为 JSON.stringify(v) (see Google official example),但收到以下错误:Refused to execute script because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.
    • 感谢更新了答案。至于parameterparameters的区别,见this jsfiddle
    猜你喜欢
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2012-11-27
    • 1970-01-01
    相关资源
    最近更新 更多