Kursus
Google Sheets sering menjadi tempat tim menyimpan dan berbagi data. Namun, jika Anda memperbarui sheet yang sama berulang kali, menyalin-tempel secara manual hanya membuang waktu.
Google Sheets API memungkinkan Anda memperbarui dan mengelola sheet secara otomatis dari aplikasi dan skrip Anda sendiri. Anda dapat menarik data masuk, mendorong pembaruan keluar, dan menjaga laporan tetap terbaru tanpa melakukannya secara manual.
Dalam panduan ini, kami akan memandu Anda menyiapkan, membaca, menulis, memformat, dan mengotomatisasi tugas spreadsheet umum selangkah demi selangkah.
Mulai Menggunakan Google Sheets API
Untuk mulai menggunakan Google Sheets API, Anda memerlukan proyek Google Cloud dan cara untuk mengautentikasi aplikasi Anda. Mari kita lihat cara menyiapkannya secara garis besar.
Membuat proyek Google Cloud
Semua Google API berjalan di dalam proyek Google Cloud. Proyek ini menyimpan kredensial, pengaturan API, dan batas penggunaan Anda.
Berikut cara membuat proyek pertama Anda:
- Buka Google Cloud Console.
- Klik Select a project di bagian atas.
- Muncul pop-up Select a project baru. Dari sini, klik New Project.
- Di jendela berikutnya, masukkan nama proyek.
- Klik Create.

Buat proyek baru di Google Console. Gambar oleh Penulis.
Setelah proyek siap, aktifkan API yang diperlukan:
- Buka proyek Anda.
- Klik tiga garis di pojok kiri atas.
- Masuk ke APIs & Services > Enabled APIs & services.
- Klik + Enable APIs & services.

Masuk ke Enable APIs & Services untuk mengaktifkan API. Gambar oleh Penulis.
- Sekarang jendela API Library muncul. Di bilah pencarian, cari Google Sheets API dan klik.
- Klik Enable.

Aktifkan Google Sheets API. Gambar oleh Penulis.
Jika aplikasi Anda perlu membuat, memindahkan, atau mengelola file spreadsheet, aktifkan juga Google Drive API:
- Cari Google Drive API.
- Klik Enable.
Autentikasi dan otorisasi
Google Sheets API mendukung tiga metode autentikasi utama. Metode yang Anda gunakan bergantung pada cara kerja aplikasi Anda.
OAuth 2.0
Gunakan ini saat pengguna nyata masuk dan bekerja dengan spreadsheet mereka sendiri. Ini memungkinkan pengguna menyetujui akses, dan aplikasi Anda hanya dapat melakukan apa yang mereka izinkan.
Misalnya, Anda membuat aplikasi web yang memungkinkan pengguna menghubungkan akun Google mereka agar aplikasi Anda dapat membaca atau memperbarui Sheets pribadi mereka. Dalam kasus ini, gunakan OAuth 2.0.
Berikut cara melakukannya:
- Di Google Console, buka Navigation Menu (tiga garis di pojok kiri atas) > API & Services > OAuth consent screen

Masuk ke OAuth consent screen. Gambar oleh Penulis.
- Sekarang isi detailnya:
- Masukkan nama aplikasi yang memerlukan persetujuan pada kolom App name
- Masukkan email dukungan agar pengguna dapat bertanya di sana dan klik Next
- Sekarang pilih tipe audiens External dan klik Next
- Berikutnya, isi informasi kontak (alamat email) agar Google dapat memberi tahu Anda tentang perubahan pada proyek Anda. Lalu klik Next
- Setujui kebijakan mereka dengan mencentang kotak dan klik Continue
- Klik Save. Pesan akan muncul menampilkan OAuth configuration created!
Sekarang, untuk mengautentikasi pengguna akhir dan mengakses data Google Sheets mereka, buat kredensial klien OAuth 2.0. Client ID mengidentifikasi aplikasi Anda secara unik ke server OAuth Google.
Berikut cara melakukannya:
- Klik Navigation Menu > APIs & Services > Credentials.
- Di jendela Credentials, klik + Create credentials dan pilih OAuth client ID.

Masuk ke OAuth client ID. Gambar oleh Penulis.
- Sekarang pilih Web Application dari dropdown Application type.
- Masukkan nama klien OAuth 2.0 untuk identifikasi di konsol.
- Di bawah Authorized redirect URIs, klik Add URI
- Masukkan URL pengalihan tempat Google akan mengirim respons otorisasi. Ini harus persis sama dengan redirect URI yang dikonfigurasi di aplikasi Anda (misalnya, endpoint callback OAuth Anda)
- Klik Create
- Salin dan simpan Client ID dan Client Secret.
API keys
API key mengidentifikasi proyek Anda, bukan pengguna. API key hanya berfungsi dengan spreadsheet publik dan tidak dapat mengedit file privat.
Karena itu, gunakan ini hanya saat Anda ingin membaca data dari Google Sheet publik untuk ditampilkan di situs web atau menguji skrip sederhana.
Berikut cara membuat API key Anda:
- Masuk ke Navigation Menu > APIs & Services > Credentials.

Masuk ke API Keys. Gambar oleh Penulis.
- Klik + Create credentials, lalu pilih API key.
- Gulir ke bawah, pilih kotak Restrict key, lalu pilih API dari dropdown yang dapat digunakan oleh API key ini.
- Klik Create.
- Salin dan simpan key yang dihasilkan.

Simpan API key yang dihasilkan. Gambar oleh Penulis.
Service accounts
Service account memungkinkan aplikasi Anda berjalan sendiri tanpa login pengguna. Anda membagikan spreadsheet tertentu ke email service account dan mengontrol apa yang dapat dilakukannya.
Jika Anda ingin menjalankan skrip terjadwal yang memperbarui laporan setiap malam atau menyinkronkan data dari database ke Google Sheet bersama, service account adalah opsi terbaik.
Mari kita lihat cara membuat dan mengonfigurasinya:
Membuat dan mengonfigurasi service account
Berikut cara melakukannya:
- Klik Google Sheets API yang kita aktifkan sebelumnya.
- Di kiri atas, klik tombol Create credentials.

Buat Credentials di Google Sheets API. Gambar oleh Penulis.
- Di jendela Create Credentials, pastikan Google Sheets API dipilih pada kolom Select an API. Sekarang pilih jenis data yang ingin Anda akses. Karena Anda menggunakan service account, pilih Application data dan klik Next.

Masukkan kredensial. Gambar oleh Penulis.
- Sekarang, jendela baru Create service account muncul:
- Tambahkan Service account name, Service account ID, dan Service account description Anda.
- Klik Create and continue.
Pop-up akan muncul menampilkan Service account created.

Buat service account di Google Sheets API. Gambar oleh Penulis.
Service account tidak menggunakan login atau layar persetujuan. Sebagai gantinya, ia melakukan autentikasi menggunakan private key yang disimpan dalam file key JSON. File key ini memungkinkan server aplikasi membuktikan identitasnya kepada Google dan secara otomatis meminta access token.
Sekarang, untuk membuat file key:
- Buka service account. (Anda juga dapat menemukannya di IAM & Admin > Service Account)
- Buka tab Keys.
- Klik Add key > Create new key.
- Pilih JSON dan klik Create.
Sekarang, file akan mulai diunduh.

Hasilkan file key JSON untuk Google Sheets API. Gambar oleh Penulis.
Membagikan Google Sheets dengan service account
Service account tidak otomatis memiliki akses ke spreadsheet Anda. Anda harus membagikan setiap file ke email service account.
Untuk melakukannya:
- Buka file yang kita unduh dan cari client_email. Atau klik service account yang kita buat di menu Service Account, lalu cari Email. Keduanya adalah email yang sama.
- Sekarang, salin email tersebut.

Salin email klien dari file key JSON. Gambar oleh Penulis.
- Buka Google Sheet.
- Masuk ke opsi Share di pojok kanan atas.
- Tempel email yang kita salin sebelumnya ke kolom berbagi.
- Pilih akses Viewer (mengizinkan membaca dan menulis data) atau Editor (mengizinkan hanya membaca) .
- Klik Send untuk membagikan akses.

Bagikan akses service account melalui Google Sheets. Gambar oleh Penulis.
Menginstal library klien
Google menyediakan library klien resmi yang menyederhanakan penggunaan Sheets API. Library ini menangani autentikasi, pemformatan permintaan, dan retry untuk Anda. Faktanya, ini lebih mudah dan lebih aman daripada mengirim permintaan HTTP mentah.
Berikut contoh instalasi umum untuk bahasa populer:
Python
pip install google-api-python-client google-auth google-auth-oauthlib
Node.js
npm install googleapis
Java (tambahkan library klien menggunakan Maven)
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-sheets</artifactId>
</dependency>
Catatan: Library klien menghemat waktu penyiapan dan mengurangi kesalahan saat proyek Anda berkembang.
Operasi Data Inti
Google Sheets API terutama digunakan untuk membaca, menulis, memperbarui, dan memformat data spreadsheet. Mari pahami ini:
Membaca data dari spreadsheet
Untuk membaca data dari Google Sheet, Anda memerlukan dua hal: ID spreadsheet dan rentang sel yang ingin diakses.
ID spreadsheet berasal dari URL Google Sheets. Ini adalah string panjang di antara /d/ dan /edit. Ini memberi tahu API spreadsheet mana yang harus dibaca.
Sebagai contoh, jika URL Sheets saya adalah: https://docs.google.com/spreadsheets/d/1s4-xSl1ztvdXmCUISe14XZWduQoJ4Ignz_HrgqsExPI/edit?gid=0#gid=0
Dalam kasus ini, Spreadsheet ID-nya adalah: 1s4-xSl1ztvdXmCUISe14XZWduQoJ4Ignz_HrgqsExPI

Spreadsheet ID. Gambar oleh Penulis.
Rentang ditulis menggunakan notasi A1, yang menggambarkan sel dengan huruf kolom dan nomor baris. Misalnya:
-
A1membaca satu sel -
A1:C10membaca satu blok sel -
Sheet1!A:Amembaca seluruh kolom -
Sheet1!1:1membaca seluruh baris
Untuk mengambil nilai, API menyediakan dua metode utama:
-
spreadsheets.values.getmembaca data dari satu rentang. Gunakan saat Anda tahu persis tabel atau blok mana yang dibutuhkan. -
spreadsheets.values.batchGetmembaca data dari beberapa rentang dalam satu permintaan. Gunakan saat Anda menginginkan data dari beberapa tempat sekaligus, seperti total dari satu sheet dan detail dari sheet lain.
Membaca data tidak mengubah spreadsheet. Ini hanya mengembalikan nilai agar aplikasi Anda dapat menggunakannya di tempat lain. Jadi, Anda dapat menggunakannya untuk menarik data ke dasbor, mengekspor data untuk analisis, dan membuat laporan otomatis.
Menulis data ke spreadsheet
Menulis data mirip dengan membaca data. Anda tetap memerlukan ID spreadsheet dan rentang, tetapi kali ini Anda juga mengirim nilai yang ingin ditulis.
Google Sheets API menyediakan dua metode utama untuk ini:
-
spreadsheets.values.update: Gunakan ini saat Anda ingin menulis data ke rentang tertentu dan menimpa yang sudah ada. Misalnya, jika Anda ingin mengganti baris header tabel dengan nama kolom baru,updateadalah pilihan yang tepat. Nilai yang Anda kirim akan menggantikan sel yang ada di rentang tersebut. -
spreadsheets.values.append: Gunakan ini saat Anda ingin menambahkan baris baru tanpa memengaruhi data yang ada. Ini berguna saat data Anda terus bertambah, seperti mencatat metrik harian, menambahkan catatan baru, atau menyimpan respons formulir. API secara otomatis menyisipkan nilai baru setelah baris terakhir yang tidak kosong.
Opsi input nilai
Saat menulis data, Anda juga perlu memilih bagaimana Google Sheets memperlakukan nilai yang Anda kirim. Ini dikontrol oleh ValueInputOption.
-
RAWmenyimpan nilai persis seperti yang Anda kirim -
USER_ENTEREDmemperlakukan nilai seolah-olah diketik ke dalam sheet
Misalnya, jika Anda mengirim =SUM(1,2):
-
Dengan
RAW, nilainya disimpan sebagai teks biasa -
Dengan
USER_ENTERED, nilainya dievaluasi sebagai rumus
Menimpa vs. menambahkan data
Memilih antara update dan append bergantung pada bagaimana sheet Anda disusun.
Gunakan update saat:
- Lokasi data tetap
- Anda mengganti header atau sel yang sudah diketahui
Gunakan append saat:
- Data tumbuh seiring waktu
- Anda ingin menghindari menimpa baris yang ada
Operasi batch
Operasi batch memungkinkan Anda mengelompokkan beberapa perubahan dalam satu permintaan API. Ini mengurangi jumlah panggilan yang dibuat aplikasi Anda dan membantu tetap dalam batas penggunaan.
Ada dua pola batching umum di Google Sheets API.
Untuk bekerja dengan nilai, Anda dapat menggunakan:
-
spreadsheets.values.batchGetuntuk membaca beberapa rentang sekaligus -
spreadsheets.values.batchUpdateuntuk menulis ke beberapa rentang dalam satu permintaan
Untuk perubahan struktural dan pemformatan, gunakan spreadsheets.batchUpdate. Ini adalah metode batching yang paling membantu dan mendukung banyak tindakan dalam satu permintaan.
Dengan spreadsheets.batchUpdate, Anda dapat menggabungkan perubahan seperti:
- Membuat atau menghapus sheet
- Mengganti nama spreadsheet atau tab
- Membekukan baris header
- Mengubah lebar kolom
- Menerapkan pemformatan
- Memperbarui beberapa rentang sekaligus
Misalnya, alih-alih mengirim permintaan terpisah untuk mengganti nama spreadsheet dan membuat tab baru, Anda dapat melakukan keduanya dalam satu panggilan batchUpdate. Ini lebih cepat dan lebih mudah dikelola seiring pertumbuhan alur kerja Anda.
Anda dapat menggunakan operasi batch untuk menyiapkan laporan, menerapkan pemformatan yang konsisten, atau melakukan pembaruan besar di seluruh spreadsheet.
Memperbarui dan menghapus data
Memperbarui data berarti mengganti nilai di sel atau rentang tertentu. Ini biasanya dilakukan saat Anda ingin menyegarkan angka, memperbarui KPI, atau menimpa area output tetap di sheet.
Untuk memperbarui nilai yang ada, gunakan spreadsheets.values.update. Di sini, Anda menentukan rentang target dan mengirim nilai baru, lalu data yang ada di rentang tersebut akan diganti.
Mengosongkan vs. menghapus data
Mengosongkan data dan menghapus data bukanlah hal yang sama:
Mengosongkan data menghapus nilai di dalam sel tetapi mempertahankan sheet, tata letak, dan pemformatan. Gunakan spreadsheets.values.clear saat Anda ingin mengosongkan rentang tanpa memengaruhi strukturnya.
Contoh: Mengosongkan bagian laporan lama sebelum menulis data baru ke sel yang sama.
Menghapus data menghapus seluruh tab sheet. Ini dilakukan menggunakan spreadsheets.batchUpdate dengan permintaan deleteSheet. Menghapus sheet akan menghapus data dan strukturnya secara permanen.
Karena menghapus sheet tidak dapat dibatalkan, sebaiknya gunakan dengan hemat dan hanya saat Anda yakin datanya tidak lagi diperlukan.
Fitur dan Fungsionalitas Lanjutan
Selain membaca dan menulis data, Google Sheets API memungkinkan Anda mengontrol tampilan dan perilaku spreadsheet. Ini memungkinkan otomatisasi pemformatan dan aturan visual dalam skala besar.
Pemformatan dan pemformatan bersyarat
Google Sheets API memungkinkan Anda menerapkan pemformatan sel secara terprogram alih-alih melalui antarmuka Sheets. Ini mencakup gaya teks, warna, format angka, dan perubahan tata letak.
Semua perubahan pemformatan dikirim sebagai permintaan JSON menggunakan spreadsheets.batchUpdate. Setiap permintaan menjelaskan apa yang diubah dan di mana menerapkannya.
Tugas pemformatan umum meliputi:
- Menebalkan baris header
- Menerapkan format angka untuk mata uang atau persentase
- Mengatur lebar kolom
- Menetapkan warna latar untuk rentang tertentu
Sebagai contoh, permintaan pemformatan dapat menargetkan baris pertama sheet dan menebalkannya dengan warna latar yang lembut. Permintaan menggunakan indeks berbasis nol, di mana baris 0 mewakili baris pertama.
Pemformatan bersyarat
Pemformatan bersyarat memungkinkan Anda menata sel secara otomatis berdasarkan nilainya. Jika Anda ingin Sheets menyorot data penting tanpa tinjauan manual, pemformatan bersyarat dapat membantu.
Menggunakan API, aturan pemformatan bersyarat ditetapkan dalam JSON dan diterapkan melalui spreadsheets.batchUpdate.
Anda dapat menggunakannya untuk:
- Menyorot nilai negatif dengan warna merah
- Menandai nilai di atas atau di bawah ambang batas
- Secara otomatis menata baris yang memenuhi kondisi tertentu
Misalnya, Anda dapat menetapkan aturan yang menyorot nilai apa pun di bawah 0 di kolom tertentu. Setelah diterapkan, pemformatan akan diperbarui secara otomatis seiring perubahan data.
Pivot table dan agregasi data
Google Sheets API dapat membuat dan memperbarui pivot table melalui kode. Pivot table meringkas dataset besar tanpa mengubah data asli, yang membantu pelaporan dan analisis.
Yang perlu Anda lakukan adalah mendefinisikan pivot table menggunakan permintaan JSON dan menerapkannya dengan spreadsheets.batchUpdate. Permintaan ini menjelaskan bagaimana data harus dikelompokkan, diringkas, dan ditampilkan.
Melalui API, Anda dapat:
- Memilih kolom mana yang menjadi label baris
- Memilih metode agregasi seperti jumlah, hitung, atau rata-rata
- Mengontrol di mana pivot table muncul
- Menyegarkan atau memodifikasi pivot table saat data baru ditambahkan
Misalnya, Anda dapat mengelompokkan baris menurut kata kunci dan secara otomatis menghitung total klik dan impresi. Seiring perubahan data dasar, pivot table akan diperbarui secara otomatis.
Connected Sheets dan integrasi BigQuery
Connected Sheets memungkinkan Google Sheets bekerja langsung dengan BigQuery. BigQuery menangani dataset besar, sementara Sheets digunakan untuk analisis dan pelaporan.
Alih-alih menyalin jutaan baris ke sheet, Connected Sheets menjalankan kueri di BigQuery dan menampilkan hasilnya. Ini menjaga spreadsheet tetap cepat dan responsif, bahkan dengan dataset yang sangat besar.
Koneksi dibuat dari dalam Google Sheets. Google Sheets API tidak digunakan untuk menyiapkan koneksi itu sendiri.
Jadi, begini cara kerjanya:
- Data berada di tabel BigQuery
- Anda menghubungkan Google Sheet ke tabel tersebut
- Sheets menjalankan kueri dan menampilkan hasil
- Data dapat disegarkan tanpa mengekspor file
Setelah terhubung, Anda dapat membuat pivot table, menerapkan rumus, dan membuat laporan langsung di Sheets.
Autentikasi dan izin
Akses ke Connected Sheets dikontrol melalui Google Cloud Identity and Access Management.
Akun yang menghubungkan Sheets ke BigQuery harus memiliki:
- Izin BigQuery Data Viewer
- Izin BigQuery Job User
- Akses ke Google Sheet
Autentikasi ditangani secara otomatis melalui antarmuka Google Sheets.
Namun, Anda harus menyadari beberapa batasan. Meskipun Sheets API dapat membaca data dari Connected Sheets dan menerapkan pemformatan atau membangun pivot table, API tidak dapat mengubah kueri BigQuery yang mendasarinya atau menulis data kembali ke rentang yang didukung BigQuery.
Itulah sebabnya Connected Sheets paling cocok untuk analisis dan pelaporan, bukan untuk memasukkan atau mengedit data mentah.
Menggunakan alat integrasi tanpa kode
Tidak semua alur kerja memerlukan kode kustom. Beberapa alat no-code dan low-code terhubung langsung ke Google Sheets API dan menangani detail teknis untuk Anda. Tiga opsi paling populer meliputi:
Alat-alat ini menyediakan antarmuka visual untuk memilih sumber data, mengatur jadwal, dan mengirim hasil ke Google Sheets. Mereka menangani autentikasi, permintaan API, dan penanganan kesalahan di latar belakang.
Ini membuat alat no-code cocok bagi pemasar dan analis yang membutuhkan pipeline data andal tanpa menulis kode. Alat-alat ini juga mengurangi waktu penyiapan untuk kasus penggunaan pelaporan dan dasbor umum.
Harga dan Batas API
Untuk sebagian besar proyek, Anda dapat menggunakan Google Sheets API secara gratis. Hal utama yang perlu dipahami adalah bagaimana batas penggunaan bekerja.
Gambaran harga API
Google tidak menagih Anda per permintaan atau per tindakan spreadsheet. Sebagai gantinya, penggunaan dikontrol oleh kuota.
Selama proyek Anda tetap dalam batas tersebut, Anda dapat menggunakan API tanpa biaya. Jika melebihi, permintaan akan diblokir sementara hingga penggunaan turun atau batas ditingkatkan.
Batas penggunaan dan kuota
Google Sheets API memberlakukan batasan untuk menjaga kestabilan kinerja dan mencegah penyalahgunaan. Batasan ini biasanya berlaku per proyek dan, dalam beberapa kasus, per pengguna.
Sebagian besar proyek menghadapi dua jenis batas utama:
1. Permintaan per menit: Batas ini mengontrol berapa banyak panggilan API yang dapat dikirim proyek Anda dalam waktu singkat. Terlalu banyak permintaan kecil yang dikirim sekaligus dapat memicu kesalahan sementara.
Secara default, Google Sheets API mengizinkan:
|
Permintaan baca |
Permintaan tulis |
|
300 permintaan per menit per proyek |
300 permintaan per menit per proyek |
|
60 permintaan per menit per pengguna |
60 permintaan per menit per pengguna |
2. Permintaan per hari: Untuk membaca dan menulis data, tidak ada batas harian tetap tentang berapa banyak permintaan yang dapat dibuat proyek Anda. Anda dapat terus menggunakan API sepanjang hari (periode 24 jam).
Batasan sebagian besar berlaku untuk jumlah permintaan yang Anda kirim per menit, bukan total sepanjang hari.
Agar tetap dalam batas dan menghindari masalah:
- Gabungkan beberapa pembaruan dalam satu permintaan
- Hindari pembacaan berulang untuk perubahan kecil
- Cache data alih-alih mengambil ulang
- Pantau penggunaan di Google Cloud Console dan lakukan penyesuaian sejak dini
Optimasi Performa dan Manajemen Kuota
Saat Anda mengotomatisasi Google Sheets, masalah performa biasanya muncul karena mengirim terlalu banyak permintaan terlalu cepat. Jadi, penting untuk memahami cara kerja kuota.
Memahami kuota API dan batas laju
Google menerapkan kuota untuk membatasi berapa banyak permintaan yang dapat dikirim proyek Anda dalam waktu tertentu. Beberapa batas berlaku per proyek, dan lainnya berlaku per pengguna.
Batasan ini berdampak langsung pada alur kerja otomatis. Jika skrip Anda mengirim terlalu banyak permintaan terlalu cepat, API mulai mengembalikan kesalahan, dan alur kerja berhenti. Ini sering terjadi saat skrip:
- Memperbarui baris satu per satu
- Berulang kali membaca rentang besar
- Berjalan terlalu sering tanpa batching
Memantau penggunaan membantu Anda menangkap masalah lebih awal. Di Google Cloud Console, Anda dapat melihat seberapa dekat proyek Anda dengan batasnya dan melihat lonjakan aktivitas secara tiba-tiba. Begini caranya:
- Buka proyek Anda.
- Buka APIs & Services > Enabled API Services
- Klik Google Sheets API.
- Buka Quotas & System Limits.
Jika Anda melihat lonjakan tiba-tiba, itu biasanya menandakan pola permintaan yang tidak efisien.

Kuota dan batas sistem. Gambar oleh Penulis.
Menerapkan exponential backoff
Bahkan skrip yang ditulis dengan baik dapat mengalami kesalahan API sementara. Yang paling umum mudah dikenali:
- Kesalahan 429 berarti terlalu banyak permintaan dikirim dalam waktu singkat
- Kesalahan 5xx berarti API mengalami masalah server sementara
Kesalahan ini sering teratasi dengan sendirinya. Mencoba lagi segera dapat memperburuk masalah.
Exponential backoff adalah cara standar untuk mencoba ulang permintaan dengan aman. Alih-alih mencoba lagi segera, skrip Anda menunggu sebelum mencoba lagi. Waktu tunggu meningkat setelah setiap kegagalan.
Pola backoff sederhana seperti ini:
- Kirim permintaan
- Jika Anda mendapat kesalahan 429 atau 5xx, tunggu satu detik
- Coba lagi
- Jika gagal lagi, tunggu dua detik, lalu empat, lalu delapan
- Berhenti setelah waktu tunggu maksimum atau jumlah percobaan ulang tertentu
Pendekatan ini mengurangi tekanan pada API dan meningkatkan peluang keberhasilan percobaan ulang.
Exponential backoff dalam praktik
Berikut contoh Python sederhana yang mencoba ulang permintaan menggunakan exponential backoff:
import time
from googleapiclient.errors import HttpError
def run_with_backoff(callable_request, max_retries=5):
delay = 1
for attempt in range(max_retries):
try:
return callable_request()
except HttpError as e:
status = getattr(e.resp, "status", None)
if status in [429, 500, 502, 503, 504]:
time.sleep(delay)
delay = min(delay * 2, 32)
continue
raise
raise RuntimeError("Request failed after retries.")
Anda kemudian dapat membungkus panggilan API apa pun dengan helper ini:
result = run_with_backoff(
lambda: service.spreadsheets().values().get(
spreadsheetId=spreadsheet_id,
range="Report!A1:E100"
).execute()
)
Ini mencegah skrip Anda langsung gagal saat masalahnya bersifat sementara, membantu alur kerja Anda berjalan lebih andal.
Strategi optimasi
Performa meningkat saat Anda mengirim lebih sedikit permintaan dan menjaga payload tetap kecil. Sebagian besar perlambatan terjadi saat skrip melakukan terlalu banyak pekerjaan dalam satu panggilan.
Berikut teknik paling efektif untuk mencegah perlambatan:
Permintaan batch
Metode batch seperti spreadsheets.values.batchGet, spreadsheets.values.batchUpdate, dan spreadsheets.batchreadsheets.batchUpdate memungkinkan Anda menggabungkan banyak tindakan dalam satu permintaan. Ini memberikan peningkatan performa terbesar.
Caching
Berulang kali membaca data yang sama membuang waktu dan kuota. Ambil metadata spreadsheet atau sheet ID sekali, lalu gunakan kembali selama skrip berjalan.
Paginasi
Beberapa respons API mengembalikan data dalam halaman. Proses satu halaman pada satu waktu alih-alih memuat semuanya sekaligus. Ini menghindari timeout dan masalah memori saat bekerja dengan dataset besar.
Kompresi Gzip
Sebagian besar library klien Google dan klien HTTP secara otomatis mendukung kompresi gzip. Kompresi mengurangi ukuran saat respons besar, seperti saat membaca rentang lebar atau mengambil metadata spreadsheet.
Respons parsial
Jika tersedia, minta hanya field yang Anda butuhkan alih-alih seluruh resource. Respons yang lebih kecil lebih cepat dan menggunakan lebih sedikit bandwidth.
Meminimalkan ukuran payload
Hindari menulis satu sel pada satu waktu. Tulis rentang penuh sebagai gantinya. Lewati pembaruan pemformatan jika tidak ada yang berubah, dan jangan kirim ulang data yang tidak perlu.
Aturan sederhana yang efektif: jika skrip melakukan loop melalui baris dan membuat panggilan API di dalam loop itu, skrip tersebut tidak akan skala. Lakukan batch pekerjaan, kurangi jumlah permintaan, dan jaga payload tetap kecil.
Penanganan Error dan Pemecahan Masalah
Kesalahan adalah bagian dari bekerja dengan API apa pun. Jadi, mari kita bahas cara memperbaiki masalah dengan cepat dan menjaga otomatisasi tetap andal.
Masalah autentikasi umum
Masalah autentikasi adalah sumber kesalahan paling umum saat mulai menggunakan Google Sheets API. Sebagian besar berasal dari penyiapan, bukan bug di kode Anda.
Masalah umum meliputi:
- Permission denied errors: Spreadsheet tidak dibagikan ke email service account, atau pengguna tidak memberikan scope OAuth yang diperlukan
- Invalid credentials atau file not found errors: Path file key JSON salah atau nama file tidak cocok
- API not enabled errors: Google Sheets API tidak diaktifkan di proyek Google Cloud yang sama dengan kredensial
Masalah OAuth sering terjadi saat scope tidak cocok dengan tindakan yang Anda coba lakukan. Misalnya, scope read-only tidak akan mengizinkan penulisan.
Masalah service account biasanya berasal dari berbagi file yang kurang. Service account tidak dapat melihat spreadsheet apa pun kecuali secara eksplisit dibagikan ke alamat emailnya.
Kesalahan pemformatan data dan permintaan
Kesalahan permintaan biasanya terjadi saat data yang dikirim tidak sesuai dengan yang diharapkan API. Pesan kesalahan sering deskriptif, tetapi tetap bisa membingungkan pada awalnya.
Penyebab umum meliputi:
-
Notasi A1 tidak valid: Nama sheet salah eja atau rentang tidak ada
-
Struktur data tidak benar: Nilai harus dikirim sebagai array dua dimensi, bahkan untuk satu baris
-
Ketidaksesuaian tipe: Angka, tanggal, dan rumus berperilaku berbeda tergantung
valueInputOption
Saat melakukan troubleshooting, selalu baca respons kesalahan lengkap karena Google API biasanya menunjuk ke field tepat yang gagal divalidasi.
Ketersediaan layanan dan tantangan performa
Seperti layanan cloud lainnya, Google Sheets API sesekali dapat mengembalikan kesalahan server seperti 503 Service Unavailable saat beban tinggi atau gangguan sementara.
Kesalahan ini biasanya bersifat sementara. Namun jangan langsung mencoba lagi karena itu dapat memperburuk keadaan.
Untuk menangani masalah keandalan dengan lebih efektif:
- Coba ulang permintaan hanya untuk kesalahan sementara seperti respons 429 dan 5xx
- Gunakan exponential backoff di antara percobaan ulang
- Lakukan batch permintaan untuk mengurangi lalu lintas
- Pantau penggunaan kuota untuk menghindari mencapai batas
Integrasi yang tangguh mengasumsikan beberapa permintaan akan gagal. Retry yang tepat, batching, dan pemantauan memungkinkan skrip Anda pulih secara otomatis dan terus berjalan tanpa intervensi manual.
Praktik Terbaik dan Keamanan
Google Sheets API mudah digunakan, tetapi keandalan jangka panjang bergantung pada bagaimana kita merancang dan mengamankan penyiapan kita.
Alat dan sumber daya pengembangan
Google menyediakan alat dan sumber daya resmi untuk membuat pengembangan lebih aman dan mudah:
- Google Workspace APIs Explorer memungkinkan Anda menguji permintaan Sheets API langsung di browser. Anda dapat bereksperimen dengan endpoint, melihat parameter yang diperlukan, dan meninjau respons tanpa menulis kode.
- Panduan cepat Sheets API memandu penyiapan dasar untuk berbagai bahasa. Panduan ini menunjukkan autentikasi, panggilan baca atau tulis sederhana, dan langkah konfigurasi umum.
- Dokumentasi resmi mencerminkan perilaku saat ini dan batas yang diketahui.
- Spreadsheet uji memungkinkan Anda bereksperimen tanpa mempertaruhkan data produksi atau menimpa laporan live.
Penggunaan library klien dan SDK
Google memelihara library klien resmi untuk Sheets API. Library ini menangani autentikasi, retry, dan pemformatan permintaan. Kita dapat mengurangi kesalahan dan menghemat waktu dengan library yang didukung. Library ini juga lebih mudah beradaptasi dengan pembaruan API dibandingkan kode HTTP kustom.
Bahasa yang didukung adalah Python, JavaScript dengan Node.js, Java, dan Go.
Setiap library mengikuti struktur inti API yang sama, tetapi beberapa menawarkan helper khusus bahasa. Python dan Node.js sering dipilih untuk otomatisasi karena penyiapannya lebih sederhana dan dukungan komunitas yang kuat.
Library klien juga terintegrasi dengan baik dengan Google API lainnya, yang membantu saat alur kerja melibatkan Drive, BigQuery, atau Gmail.
Manajemen kredensial dan keamanan
Kredensial mengontrol akses ke data Anda, jadi tangani dengan benar dengan mengikuti praktik terbaik berikut:
-
Jangan pernah meng-commit file key ke version control
-
Simpan key di luar repositori publik
-
Gunakan variabel lingkungan atau secret manager di produksi
-
Berikan hanya izin yang diperlukan
-
Pilih peran sempit daripada yang luas
-
Batasi akses service account untuk tugas tertentu
-
Waspadai lonjakan tidak biasa atau pola akses yang tidak dikenal
-
Rotasi key secara berkala dan cabut serta ganti key yang terekspos segera
Penutup
Langkah terbaik berikutnya adalah mengotomatisasi satu tugas kecil yang sudah rutin Anda lakukan secara manual. Pilih spreadsheet yang Anda kendalikan, baca satu rentang, lalu tulis atau tambahkan data ke sana. Setelah berhasil, jadwalkan dan biarkan berjalan sendiri.
Di situlah Google Sheets API mulai memberikan manfaat.
Anda tidak perlu sistem yang kompleks sejak awal. Satu alur kerja yang andal sudah cukup untuk menghemat waktu, dan membuat alur berikutnya jauh lebih mudah. Jika Anda ingin mengasah keterampilan tersebut bersamaan dengan otomatisasi, lihat jalur Google Sheets Fundamentals kami atau Introduction to Google Sheets, serta kursus Intermediate Google Sheets untuk mendapatkan lebih banyak nilai dari setiap alur kerja yang Anda otomasi.
Saya seorang ahli strategi konten yang senang menyederhanakan topik kompleks. Saya telah membantu perusahaan seperti Splunk, Hackernoon, dan Tiiny Host membuat konten yang menarik dan informatif untuk audiens mereka.
FAQs
Apa perbedaan antara Sheets API dan Google Apps Script?
Sheets API paling tepat digunakan saat logika Anda berada di luar Google (misalnya backend, ETL, layanan). Jika Anda menginginkan sesuatu yang cepat dan berjalan di dalam Google Sheets, gunakan Apps Script.
Bisakah saya menggunakan Google Sheets API tanpa Google Cloud Console?
Tidak. Setiap permintaan API harus termasuk dalam proyek Google Cloud. Konsol diperlukan untuk mengaktifkan API dan membuat kredensial.
Apakah mungkin melacak siapa yang mengubah data melalui API?
Ya. Riwayat edit di Google Sheets tetap mencatat perubahan, tetapi edit oleh service account akan muncul dengan nama service account.
Apakah API bekerja sama untuk file Excel?
Tidak. API hanya berfungsi dengan Google Sheets. File Excel harus dikonversi sebelum digunakan.
Apa cara paling aman untuk mulai menggunakan API?
Mulailah dengan akses hanya-baca pada spreadsheet uji, lalu secara bertahap tambahkan izin tulis.

