iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
IT管理

「Google Apps Script」 學習筆記系列 第 8

【Day 8】Google Apps Script - 依文件實作 Demo 用的 API

依文件的描述撰寫 API,實作時如果發現有實作的問題,再反饋討論修正。


今日要點:
》製作 API 規格文件
》實作 Demo 用的 API


前篇我們把文件寫好了, 那今天就來實作它。

實作 Demo 用的 API

【Day 7】我們撰寫了「查詢Gamil資訊」API 文件,就可以依文件的描述撰寫 API,實作時如果發現有實作的問題,再反饋討論修正。

這裡需要寫一個API來回應前端的請求,我們可以依【Day 6】介紹的觸發器實作 doGet(e) 來接收請求並且回應資訊。

  • doGet(e) 觸發器,接收前端的請求並且回應資訊。
  • getJsonGmailInfo(name) 組合「查詢Gamil資訊」要回應JSON資訊 (對查詢人的問候語、收件夾中未讀信件的數量、垃圾信件夾中的未讀數量、最新5筆信件的標題)。
  • getJsonGmailMessageSubject() 取得收件夾中最新的5封的信件標題。

接收前端的請求

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 再繼續補充 ^_^。

參考


上一篇
【Day 7】Google Apps Script - 使用 Google Docs 撰寫 Demo 用的 API 文件
下一篇
【Day 9】Google Apps Script - 部署網頁應用程式與觸發doGet(e)測試
系列文
「Google Apps Script」 學習筆記30

尚未有邦友留言

立即登入留言