[記錄]串接 GOOGLE API 取得資料(二)

前情提要

前篇說明為什麼我要作「精神力評鑑」

原因是為了記錄自已的精力,能更有效率使用時間,進而提昇個人的生產力.

應用

有了數據後, 就要看怎麼運用.
Google 的表單,可以自動產生回應結果試算表,
持之以恒的每天記錄,很快就有上百千筆的資料.

我打算取得這些資料後,繪制成分佈圖
這樣就可以知道,我的黃金時間是在每一天的什麼時段.

如何透過 GOOGLE Sheets API 可以取得資料.

Google Cloud Platform,建立起 Google API 的服務。

  1. 前往Google API Wizard,建立或選擇專案。
  2. 建立憑証,選擇 OAuth Client ID
    • 在這裡我會一次性的建立起所有環境(開發、測試、正式)的憑証 。
  3. 下載 JSON 放置專案的指定位置.
  4. 如何取得授權與取得資料,請參考QuickStart
    • 安全考量,我不會將 client_secret.json 與取回的 token 加入版本控制
    • 以 Google 試算表為例,如何取得spreadsheetId? 很簡單,網址上就可以取得。
      1
      2
      3
      ex:
      https://docs.google.com/spreadsheets/d/1qpyC0XzvTcKT6EISywvqESX3A0MwQoFDE8p-Bll4hps/edit#gid=0
      的spreadsheetId就是1qpyC0XzvTcKT6EISywvqESX3A0MwQoFDE8p-Bll4hps

說明

以 QuickStart 的程式為例 ,
下載回來的檔案 client_secret.json
可以提供 clientSecretclientId 與授權後轉導的 url ,
當程式執行時, 便會透 googleAuth 去取得授權 ,
過程之中會需要使用者作驗証, 驗証完成即取得授權 ,
授權有一定的效期, 故一段時間之後需要重新取得授權

其它

  1. client_secret.json 是機敏資料, 不可以放入版本控制, 需要特殊的流程步驟上傳到你的 Web Server 的位置 - Openshift 可以透過 SSH 或是 SFTP 登入來上傳client_secret.json - CI 以 JENKINS 為例 ; 可以使用 Publish over SSH 上傳檔案
    - 需要注意 CI Server 要有 Web Server 的 SSH Key - LINUX 複製資料夾語法 cp -rf src/folder/. target/folder

  2. 在正式公開的環境上可能會發生Error: invalid_scope的錯誤 ,可以參考

  3. 我最後是使用d3.js作為繪圖的 library , 因為網路上的資源相當的多 , 而且這次的著墨並不多 , 所以不在這裡介紹.

Demo

參考

  1. Openshift SFPT
  2. Linux CP

(fin)

Please enable JavaScript to view the Gitalk. :D
Please enable JavaScript to view the LikeCoin. :P
Please enable JavaScript to view the LikeCoin. :P