Langsung ke konten utama

Seri 8: Menghubungkan Google Apps Script dengan API Eksternal

Pada seri sebelumnya, kita sudah belajar Membuat Add-on Sederhana untuk Google Sheets. Pada seri ini kita akan belajar:

  • Apa itu API dan bagaimana cara kerja HTTP Request.

  • Cara menggunakan UrlFetchApp di Google Apps Script.

  • Mengambil data dari API publik (contoh: cuaca).

  • Mengirim data ke API eksternal (contoh: webhook).

  • Menampilkan hasilnya di Google Spreadsheet.


⚙️ 1. Apa Itu API?

API (Application Programming Interface) adalah jembatan yang memungkinkan satu aplikasi berbicara dengan aplikasi lain.

Misalnya:

  • Kita bisa mengambil data cuaca dari OpenWeatherMap API.

  • Mengirim pesan ke Telegram atau WhatsApp Business API.

  • Mengirim data penjualan ke sistem internal perusahaan.

API bekerja dengan cara mengirim permintaan HTTP (request) dan menerima balasan (response) dalam format seperti JSON.


🔧 2. Fungsi Dasar UrlFetchApp

Google Apps Script menyediakan objek bernama UrlFetchApp untuk berkomunikasi dengan API eksternal.

Sintaks dasarnya:

const response = UrlFetchApp.fetch(url, options);
  • url → alamat API yang ingin diakses.

  • options → pengaturan request seperti metode, header, dan payload (jika perlu).

  • response → hasil dari server (bisa berupa JSON, teks, atau HTML).


☀️ 3. Contoh 1: Mengambil Data Cuaca (GET Request)

Mari kita ambil contoh API publik dari OpenWeatherMap.
Kita akan ambil data suhu terkini di Jakarta.

function ambilDataCuaca() { const apiKey = 'ISI_API_KEY_ANDA'; const city = 'Jakarta'; const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`; const response = UrlFetchApp.fetch(url); const data = JSON.parse(response.getContentText()); const suhu = data.main.temp; const kondisi = data.weather[0].description; Logger.log(`Suhu di ${city}: ${suhu}°C, kondisi: ${kondisi}`); }

📘 Penjelasan:

  • UrlFetchApp.fetch() → mengirim permintaan ke API.

  • JSON.parse() → mengubah teks JSON menjadi objek JavaScript.

  • data.main.temp dan data.weather[0].description → mengekstrak data cuaca.

Kita bisa menulis hasilnya ke spreadsheet juga:

const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Cuaca'); sheet.appendRow([new Date(), city, suhu, kondisi]);

📮 4. Contoh 2: Mengirim Data ke API (POST Request)

Sekarang, kita akan belajar mengirim data ke API eksternal menggunakan metode POST.

Contoh kasus: kita ingin mengirim data ke webhook (misalnya untuk sistem internal atau Discord, Notion, atau Zapier).

function kirimDataKeAPI() { const url = 'https://webhook.site/xxxxxx'; // Ganti dengan URL webhook Anda const data = { nama: 'Bagus Prasojo', waktu: new Date().toISOString(), pesan: 'Percobaan kirim data dari Google Apps Script!' }; const options = { method: 'POST', contentType: 'application/json', payload: JSON.stringify(data) }; const response = UrlFetchApp.fetch(url, options); Logger.log('Response server: ' + response.getContentText()); }

📘 Penjelasan:

  • method: 'POST' → menentukan jenis request.

  • contentType: 'application/json' → memberitahu server format datanya.

  • payload → isi body yang kita kirim ke API.

Dengan ini, setiap kali fungsi dijalankan, data JSON akan dikirim ke URL tujuan.


🔐 5. Menggunakan Header Otorisasi (API Key / Token)

Beberapa API membutuhkan autentikasi, misalnya API cuaca, WhatsApp API, atau Telegram Bot.
Biasanya kita perlu menambahkan header Authorization.

Contoh:

function ambilDataDenganToken() { const url = 'https://api.example.com/data'; const token = 'Bearer 1234567890abcdef'; const options = { method: 'GET', headers: { 'Authorization': token } }; const response = UrlFetchApp.fetch(url, options); const result = JSON.parse(response.getContentText()); Logger.log(result); }

🧩 6. Contoh Kasus Nyata: Menampilkan Data Cuaca dari BMKG menggunakan API

Kita bisa ambil data dari API publik seperti milik BMKG

function ambilDataCuacaBMKG() {
  const url = `https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4=31.71.03.1001`;

  const response = UrlFetchApp.fetch(url);
  const data = JSON.parse(response.getContentText());
  Logger.log('Provinsi : ' + data.lokasi.provinsi);
  Logger.log('Kota/Kab : ' + data.lokasi.kotkab);
  Logger.log('Kecamatan : ' + data.lokasi.kecamatan);
  Logger.log('Desa : ' + data.lokasi.desa);
  Logger.log('------------------------------ C U A C A -------------------------------');
  Logger.log(data.data[0].cuaca[0][0]);
 
}

Script di atas akan menampilkan data cuaca yang diambil dari data BMKG ke dalam log

Cuaca dari BMKG



🧠 7. Tips dan Praktik Terbaik

✅ Gunakan try...catch untuk menangani error API:

try { const res = UrlFetchApp.fetch(url); } catch (e) { Logger.log('Terjadi error: ' + e); }

✅ Gunakan PropertiesService untuk menyimpan API key agar lebih aman:

const props = PropertiesService.getScriptProperties(); props.setProperty('API_KEY', '12345ABCDE'); const apiKey = props.getProperty('API_KEY');

✅ Gunakan JSON.parse() hanya untuk data dalam format JSON.

✅ Gunakan Logger.log(response.getResponseCode()) untuk memeriksa status request.


📚 Kesimpulan

Di seri ini kita sudah belajar:

  • Dasar komunikasi antar sistem melalui API.

  • Mengambil data dari API (GET).

  • Mengirim data ke API (POST).

  • Menambahkan header otorisasi/token.

  • Menyimpan hasil ke Google Spreadsheet.

Dengan kemampuan ini, Google Apps Script bisa menjadi hub integrasi otomatis antara Google Workspace dan layanan eksternal — dari laporan keuangan, notifikasi, chatbot, hingga sistem bisnis internal.


🔜 Seri Selanjutnya

➡️ Seri 9: Membuat Web App dengan Google Apps Script

Kita akan membuat aplikasi web mini berbasis GAS, lengkap dengan tampilan HTML, form input, dan penyimpanan data ke Spreadsheet.
Ini adalah langkah besar menuju pembuatan aplikasi internal berbasis cloud yang mudah diakses oleh tim.

Komentar