2015-05-08 78 views
5

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

我的javascript:

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

有没有一种可能的方法调用我的自定义功能中的一个,例如

我的谷歌Apps脚本:

function getNumberOfFans(e){ 
    //code here 
} 

我一定要添加一些一些额外的功能参数到我的网址?

回答

14
  • 在“独立”Apps脚本文件中添加一个doGet(e)函数。
  • 将Apps脚本文件发布为Web App。
  • 获取Web App的发布URL。
  • 将搜索字符串参数添加到URL的末尾。

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

下面是一个例子:

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

搜索字符串是在URL的结尾,exec后。您必须在exec后面添加一个问号,然后name=value

将事件参数(用字母“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 Parameters

+0

非常明确的答案!谢谢 – Rover

+1

不错的一个 - 我很喜欢它! – Mogsdad