依文件的描述撰寫 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 再繼續補充 ^_^。