【我可以你也可以的Node.js】第二三篇 - 蛤!原来串接 Google Sheet API 那么简单?

最近工作为了写测试想要敌不动我不动,敌欲动我先跑。
想要藉由抓 Google Sheet 资料来检查目前系统参数是否正常,
但是又不想要每次如果系统一有改动我都还要...
开Ticket -> 改 Code -> Code Review -> Merge 。
那如果使用 Google Sheet,我就只要改上面的参数,旁边纪录一下就完事了~
顶多规定旁边注记更动人,并且 Google 还帮你版控。
是不是方便很多!?

最初其实我本来就有串过 Google 官方提供的 Sheet API,不难...但是说实话什么都要自己来满累的,于是乎我去 npm 找了一下相关套件。
于是乎找到了这个
google-spreadsheet

先来看成果

範例资料

执行结果

目前个人使用体验满不错的,今天也手把手教大家怎么串。
基本上步骤只有三个~

申请凭证开权限串起来

申请一组凭证

先建立专案 (Google Developers Console连结)第一次使用的可能会看到这个,同意就好(X
点选左上方选取专案
建立一个专案
确认切换专案成功
启用 Google Sheet API点选 ENABLE APPS AND SERVICES
找一下 google sheet
启用
新增凭证切换到凭证的页面点选建立凭证的服务帐户
没有特殊需求就可以像我一样直接按继续(X
这边也是,没有特殊需求就可以像我一样直接按继续(X
建立完成后应该会有多一个服务帐户点击那个服务帐户
新增金钥
选择 JSON
他会自动帮你下载下来放进你专案的目录里

开启 Google Sheet 权限

点选共用
输入你刚刚申请的服务帐号信箱地址

串起来!

先来安装一下刚刚讲的套件,
老司机的你一定知道怎么做。

npm install google-spreadsheet

直接开写

// googleSheet.jsconst { GoogleSpreadsheet } = require('google-spreadsheet');/** * @param  {String} docID the document ID * @param  {String} sheetID the google sheet table ID * @param  {String} credentialsPath the credentials path defalt is './credentials.json' */async function getData(docID, sheetID, credentialsPath = './credentials.json') {  const result = [];  const doc = new GoogleSpreadsheet(docID);  const creds = require(credentialsPath);  await doc.useServiceAccountAuth(creds);  await doc.loadInfo();  const sheet = doc.sheetsById[sheetID];  const rows = await sheet.getRows();  for (row of rows) {    result.push(row._rawData);  }  return result;};module.exports = {  getData,};

Sheet 的 docID 和 sheetID 请参照以下网址规则。

https://docs.google.com/spreadsheets/d/<docID>/edit#gid=<sheetID>

./credentials.json 就是你刚刚下载的凭证,记得路径和名字。

执行它

// test.jsconst { getData } = require('./googleSheet.js');(async () => {  const resp = await getData('<docID>', '<sheetID>');  console.log(resp);})();

此篇到此结束~
希望对你有帮助~


另外这官方也有满详细的文件可供参考,可点击以下连结看一下,如果是英文真的看不懂也可以与我私下讨论或底下留言。
google-spreadsheet


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章