03 GET請求

(2020/12/06)

一、上傳溫濕度到Thingspeak

  • Thingspeak的使用,請看08 IOT

  • 使用API Request將資料上傳到Thingspeak

    • Thingspeak的API Keys項目可以看到相關資訊,如下

  • 採用上面第一條將資料寫進channel的方法

    • 程式如下:

      • 結果

二、上傳溫濕度到Google試算表

    • 接著寫入 Function doGet,如下程式碼所示

      1. function doGet(e) {

      2. //取得參數

      3. var params = e.parameter;

      4. var temp = params.temp;

      5. var humidity = params.humidity;

      6. //sheet資訊

      7. var SpreadSheet = SpreadsheetApp.openById("1rilPSySRCNs9RYEgg2lMQbJX1pt79CfQlQ_bfEtWba8");

      8. var Sheet = SpreadSheet.getSheets()[0];

      9. var LastRow = Sheet.getLastRow();

      10. //存入資訊

      11. Sheet.getRange(LastRow+1, 1).setValue(temp);

      12. Sheet.getRange(LastRow+1, 2).setValue(humidity);

      13. //回傳資訊

      14. return ContentService.createTextOutput(“成功”);

      15. }

      • 程式碼說明

        • doGet 代表 API method 爲 get

        • 取得參數:傳入的全部參數以 e.parameter 取得,再分別以其他變數存放個別參數

        • Sheet 資訊:程式碼中的 “請輸入自己的 sheet id”,請複製你的 Google Sheet 網址列 https://docs.google.com/spreadsheets/d/ 以後至 edit 中間的代碼。SpreadSheet.getSheets()[0]; 取得要存入的試算表的第一張試算表。Sheet.getLastRow(); 取得該張試算表中,最後一列有值的列數。

        • 存入資訊:Sheet.getRange(LastRow+1, 1).setValue(name); 將資料存入最後有值的下一列,第一欄。其他以此類推。

        • 回傳資訊:return ContentService.createTextOutput(“成功”); 存入過程無誤,回傳成功資訊。若需要其他驗證條件也可以寫 if 條件判斷,並於失敗時,回傳失敗資訊。

    • 部署

      • 部署爲網路應用程式

      • 將具有應用程式存取權的使用者改爲 “任何人"

      • 點選核對權限 -> 選擇自己的帳戶 -> 進階 -> 前往 (不安全) -> 允許,

        • 接著就會看到以下畫面,網路應用程式網址即爲 Call API 的 URL。

        • 要把URL複製下來,如果沒複製再點【發布】/【部署爲網路應用程式】就可找到

  • 到Mixly寫程式

    • 程式寫法與上面上傳到Thingspeak 一樣

    • 程式

      • 結果