【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 再继续补充 ^_^。

参考


<<:  【第九天 - Flutter Bloc+Cubit 架构教学】

>>:  Python 语言和你 SAY HELLO!!

[Day 4] 怎麽挑选作品集的主题 - Open API介绍

今天来聊一聊 怎麽挑选作品集的主题 老实说主题我其实想蛮久的, 想得出来的不一定做得到, 做得出来又...

Day 3 - 稳若泰山

简介 今天我想要介绍一下关於C++的一些基本文法,还有一些我学到的写程序时须注意的小撇步。做为一个初...

Day13 SwiftUI 06 - WebView

接下来我们来看看在SwiftUI 怎麽使用WebView 网页的元件,SwiftUI 框架 有一个缺...

风险曝险(Risk exposure )

-什麽是风险? ISO/IEC/IEEE 24765:2017 系统和软件工程 — 词汇 风险给个...

Day 13:杂凑表(hash table)

在通讯录或朋友列表里,我们可以搜寻一个名字,就找到电话或页面,只需要O(1)。如果想要实现这样的操作...