依文件的描述撰寫 API,實作時如果發現有實作的問題,再反饋討論修正。
今日要點:
》製作 API 規格文件
》實作 Demo 用的 API
前篇我們把文件寫好了, 那今天就來實作它。
【Day 7】我們撰寫了「查詢Gamil資訊」API 文件,就可以依文件的描述撰寫 API,實作時如果發現有實作的問題,再反饋討論修正。
這裡需要寫一個API來回應前端的請求,我們可以依【Day 6】介紹的觸發器實作 doGet(e) 來接收請求並且回應資訊。
接收前端的請求
function doGet(e) {
var param;
var name = '路人甲';
var func = 'getGmailInfo';
var content;
if(e){
param = e.parameter;
name = param.name;
func = param.func;
}
if(func == "getGmailInfo"){
content = getJsonGmailInfo(name);
}else{
content = {'error':'無此 function '}
}
return ContentService.createTextOutput(JSON.stringify(content) )
.setMimeType(ContentService.MimeType.JSON);
}
組合「查詢Gamil資訊」要回應的JSON資訊
function getJsonGmailInfo(name){
var json = {
'hello': name +' 您好!',
'unreadCount': GmailApp.getInboxUnreadCount(),
'spamCount': GmailApp.getSpamUnreadCount() ,
'messageSubject': getJsonGmailMessageSubject()
};
return json;
}
取得收件夾中最新的5封的信件標題
function getJsonGmailMessageSubject()
{
//取得最近1到5的信件
var mail = GmailApp.getInboxThreads(0, 5);
var tempPrdList=[];
for(var i in mail){
tempPrdList.push(mail[i].getFirstMessageSubject());
}
return tempPrdList;
}
以上就完成了 API 程式的撰寫,這裡用到的 Gmail API 都很直覺所以沒加什麼註解,未來有機會實作到其他的 Gmail API 再繼續補充 ^_^。