2015-05-08 79 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