Tutorial

Membuat API dari data Google Spreadsheet

Pinterest LinkedIn Tumblr

Cara ini merupakan cara yang mudah namun sangat efektif banget untuk mempercepat proses protype dalam membuat aplikasi sederhana ataupun untuk keperluan yang cepat dengan data berbentu excel dari google spreadsheet.

Pertama siapkan filenya di https://docs.google.com/spreadsheets/

Yang dibutuhkan adalah membuat google spreadsheetnya menjadi publik. kemudian catat id dari spreadsheet tersebut yang terdapat pada link sharenya.

Contoh link :

https://docs.google.com/spreadsheets/d/1kMTqH4i4f5N3vrtFuTCTozFXC5u0G-bzsvLQWW0sysw/edit?usp=sharing

dan ID Spreadsheet tersebut adalah seperti ini : “1kMTqH4i4f5N3vrtFuTCTozFXC5u0G-bzsvLQWW0sysw

selanjutnya membuat script dengan https://script.google.com/

pada code.gs hapus semua script dan ganti dengan script dibawah ini :

function doGet(request) {
    var output = ContentService.createTextOutput();
    var data = {};
    var id = request.parameters.id;
    var sheet = request.parameters.sheet;
    var cell = request.parameters.cell;
    var ss = SpreadsheetApp.openById(id);
    if (sheet) {
      if (cell) {
        data = ss.getSheetByName(sheet).getRange(cell).getValue();
      } else {
        data = readData_(ss, sheet);
      }
    } else {
      ss.getSheets().forEach(function(oSheet, iIndex) {
        var sName = oSheet.getName();
        if (! sName.match(/^_/)) {
          data = readData_(ss, sName);
        }
      })
    }
  var result = cell ? data :JSON.stringify({status:'Success', data:data});
    var callback = request.parameters.callback;
    if (callback == undefined) {
      output.setContent(result);
      output.setMimeType(cell ? ContentService.MimeType.TEXT : ContentService.MimeType.JSON);
    }
    else {
      output.setContent(callback + "(" + result + ")");
      output.setMimeType(ContentService.MimeType.JAVASCRIPT);
    }
    return output;
  }
  
  
  function readData_(ss, sheetname, properties) {
  
    if (typeof properties == "undefined") {
      properties = getHeaderRow_(ss, sheetname);
      properties = properties.map(function(p) { return p.replace(/\s+/g, '_'); });
    }
    
    var rows = getDataRows_(ss, sheetname);
    var data = [];
    for (var r = 0, l = rows.length; r < l; r++) {
      var row = rows[r];
      var record = {};
      for (var p in properties) {
        record[properties[p]] = row[p];
      }
      data.push(record);
    }
    return data;
  }
  
  function getDataRows_(ss, sheetname) {
  
    var sh = ss.getSheetByName(sheetname);
    return sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
  
  }
  
  
  function getHeaderRow_(ss, sheetname) {
  
    var sh = ss.getSheetByName(sheetname);
    return sh.getRange(1, 1, 1, sh.getLastColumn()).getValues()[0];
  
  }

Selanjutnya simpan dan kemudian pilih menu publish > Deploy as web apps dan akhirnya mendapatkan link untuk script yang sudah dibuat seperti dibawah ini

https://script.google.com/macros/s/AKfycbzCQmwaABssgJmjXQhEAlzSQ-Rt1jxkXGLnHNsUrfLvkohhw90w/exec

Selanjutnya untuk mendapatkan data caranya sangat mudah adalah dengan attribut link seperti berikut:

Baca juga :   Cara export all mengambil semua whatsapp chat

https://script.google.com/macros/s/AKfycbzCQmwaABssgJmjXQhEAlzSQ-Rt1jxkXGLnHNsUrfLvkohhw90w/exec?id=1kMTqH4i4f5N3vrtFuTCTozFXC5u0G-bzsvLQWW0sysw&sheet=data

terdapat

  • Id, merupakan id dari spreadsheet yang sudah dibuat
  • sheet, adalah nama dari sheet yang ingin diambil datanya

Cara ini sudah pernah ditulis oleh beberapa penulis yang menginspirasi saya untuk mempraktekkannya. Dan saya pikir ini adalah cara yang mudah dan sederhana.

Selengkapnya kamu dapat baca,

  • https://chromplex.com/api-dengan-google-apps-script-dan-database-google-sheets/
  • https://medium.com/@basriumar/cara-buat-json-dari-data-spreadsheet-google-aplikasi-android-9c9008c9ac7e

Founder & author di AkuNgeblog.com, Seorang penikmat coklat panas.

Tinggalkan Balasan

Pin It