RESTful的幾個重點,其中一個就是從url定義資源所需的參數,而在Apps Script中的doGet function中,可以透過request物件來取出request過程中的query等參數...
function doGet(request) {
var out = {name: request.parameters.start};
return ContentService.createTextOutput(JSON.stringify(out))
.setMimeType(ContentService.MimeType.JSON);
}
要把doGet做publish時,首先要指定版本,原則上在"File > Manage Versions"裡面可以指定版本
然後再透過Deploy頁面設定Project version,就可以發佈該版本的Apps Script到Web上...
而Apps Script的執行部分有幾個重點供參考:
- 取出current web app url欄位的url時,url格式大概如下:
https://script.google.com/macros/s/AKfycbxjC58GE1rPi54eAZvhxIgaX2xSLGu38K4YfR0R5SA2nNb3Lsc/exec
url看起來是:https://script.google.com/macros/s/:id/exec的組合 - 當點選下方的lastest code鏈結時候,或開啟測試模式,則會跑到:
https://script.google.com/a/macros/mitac.com.tw/s/AKfycbzCUJIWgpo6yVnL4JG_4qSSAQlg99bwJ3EdE6J4lTh/dev - 然後馬上被redirect到:
https://script.googleusercontent.com/a/macros/mitac.com.tw/echo?user_content_key=j-9iX4odzmJRZKijrZ0e_5jqowDZT1uCy8d6Jx5x_FkOvWHMXj78CEgdU8n3oqyObjSjU2wmuTE8Fmdg-4L9BZBix-bWyo3Vm5_BxDlH2jW0nuo2oDemN9CCS2h10ox_nRPeZU6HP_EacvQy4EAAuWXYVtFburqh0lmODcuY_0a3o3PCjKteu9Tuz8FMInxI_-b8yMI1pWfuBee3wHy1n3bN0eBx4Kknztff0HbDSQ&lib=MfUByQtUD4fXYfP6AIUJuMmwZ9lE5h1H
上面,直接屬於production的link為第一個,最後是exec的那個,其他是dev version的鏈結,暫時沒用到...
這種跳轉的方式,在取值部分,有時候會有些困難,例如使用curl時候,如果沒加上參數"L",則會發生無法取回值的問題,僅取回302的http status...,目前測試透過"curl -L"則可以把302所指向的page值也帶出來...
另外,透過jQuery Ajax模組,呼叫後,可以正常取回最後頁面執行解果
$(document).ready(function(){
$('#test').on('click',function(){
$.ajax ({
type:'GET',
headers:{},
success:function(data){
alert(JSON.stringify(data));
},
error:function(data){
alert(JSON.stringify(data));
}
});
});
});
執行的結果如下:
透過上述的方式,就可以定義您的Apps Script作為一個RESTful的服務平台喔!
留言
張貼留言