Kako povezati Google Sheets sa aplikacijom
Da biste povezali Google Sheets sa aplikacijom, uključite Google Sheets API u Google Cloud projektu, napravite servisni nalog, podelite tabelu sa emejl adresom servisnog naloga, i ključ sačuvajte kao tajnu na serveru. Server zatim čita redove preko spreadsheets.values.get i dodaje redove preko spreadsheets.values.append. Ako korisnici treba da povežu svoje tabele, koristite OAuth, a ako je tabela potpuno javna, za čitanje je dovoljan jednostavan API ključ.
Ovaj vodič pokriva koji način odgovara, pozive koji su vam potrebni, kvote i zamke, kao i upite za AI alat za pravljenje aplikacija. Podaci o Google-u su iz Google-ove developer dokumentacije od septembra 2026.
Zašto uopšte povezivati tabelu
Česti razlozi:
- Zadržavanje radnog toka tima. Osoblje i dalje menja cenovnik ili raspored u Sheets-u, a aplikacija ga prikazuje.
- Prikupljanje podataka tamo gde ljudi već gledaju. Nove registracije, narudžbine ili odgovori na formulare stižu kao redovi.
- Izveštavanje. Izvoz podataka iz aplikacije u tabelu za ljude koji žive u tabelama.
- Korak ka pravoj bazi. Počnite od tabele, pa pređite na pravu bazu. Pogledajte kako pretvoriti tabelu u aplikaciju.
Izaberite kako aplikacija prijavljuje Google
Google-ov vodič za akreditive opisuje tri tipa:
| Akreditiv | Šta može da pristupi | Najbolje za |
|---|---|---|
| API ključ | Samo javno dostupne podatke, kao što su fajlovi podeljeni sa „Anyone with the link” | Čitanje javne tabele |
| Servisni nalog | Podatke u vlasništvu vaše aplikacije, ili određene fajlove podeljene sa emejl adresom servisnog naloga | Da vaša aplikacija čita i piše vaše tabele |
| OAuth klijent ID | Korisnikove sopstvene fajlove, posle njegove saglasnosti | Da svaki korisnik poveže svoje tabele |
Za većinu aplikacija servisni nalog je pravi izbor: jedan skup akreditiva, u vašem vlasništvu, sa pristupom samo tabelama koje izričito podelite sa njim.
Korak po korak sa servisnim nalogom
- Napravite ili izaberite Google Cloud projekat i uključite Google Sheets API.
- Napravite servisni nalog i ključ za njega. Ključ je JSON fajl; tretirajte ga kao lozinku.
- Podelite tabelu sa emejl adresom servisnog naloga, kao Viewer za samo čitanje ili Editor za upis. Google u vodiču kaže da se to radi preko uobičajenog ekrana za deljenje.
- Sačuvajte ključ kao tajnu na serveru, na primer
GOOGLE_SERVICE_ACCOUNT_JSON, plus ID tabele (dugi niz u URL-u tabele) kaoSHEET_ID. - Pozivajte API sa servera uz Google-ovu klijentsku biblioteku za vaš jezik.
- Keširajte čitanja ako mnogi posetioci vide iste podatke, da ne biste dolazili do kvote.
Pozivi koje ćete koristiti
Iz Google-ovog vodiča za čitanje i upis vrednosti:
| Metod | Šta radi |
|---|---|
spreadsheets.values.get | Čita jedan opseg, na primer Leads!A1:E |
spreadsheets.values.batchGet | Čita više opsega jednim zahtevom |
spreadsheets.values.update | Upisuje u određeni opseg |
spreadsheets.values.append | Dodaje redove posle postojećih podataka u tabeli |
Opsezi koriste A1 notaciju. Google napominje da opseg bez imena lista, kao A1:B2, važi za prvi list, zato imenujte karticu eksplicitno da ne biste imali iznenađenja kad neko promeni redosled kartica.
RAW naspram USER_ENTERED
Upisi zahtevaju valueInputOption:
- RAW čuva tačno ono što pošaljete, kao tekst.
=1+2se čuva kao tekst=1+2. - USER_ENTERED tretira unos kao da je ukucan u Sheets: datumi postaju datumi, a
=1+2postaje formula.
Ako upisujete tekst koji su korisnici uneli u aplikaciju, koristite RAW. Sa USER_ENTERED, neko može poslati formulu koja se izvrši kada kolega otvori tabelu.
Kvote i greške
Od septembra 2026. stranica Google-ovih ograničenja za Sheets API navodi:
| Ograničenje | Zahtevi za čitanje | Zahtevi za upis |
|---|---|---|
| Po minutu po projektu | 300 | 300 |
| Po minutu po korisniku po projektu | 60 | 60 |
Dnevnog ograničenja nema, sve dok ostajete u minutnim kvotama. Kada se pređe, vraća se 429: Too many requests, a Google preporučuje eksponencijalno čekanje (truncated exponential backoff): čekajte sve duže posle svakog neuspelog pokušaja, uz nasumično kašnjenje, do određenog maksimuma. Pojedinačni zahtev koji traje duže od 180 sekundi ističe.
U praksi: ne zovite API pri svakom otvaranju stranice. Keširajte podatke tabele bar minut, grupišite čitanja sa batchGet, i grupišite upise gde možete.
Opcije i kompromisi
| Pristup | Prednosti | Mane |
|---|---|---|
| Tabela kao živi izvor podataka | Osoblje menja u poznatom alatu; nema admin ekrana za pravljenje | Kvote, nema dozvola po redu, lako se pokvari preimenovanjem kolone |
| Sinhronizacija tabele u bazu | Brzo i pouzdano čitanje; aplikacija radi i kad Sheets nije dostupan | Potreban je sync posao i pravilo koja strana pobeđuje |
| Baza prvo, izvoz u tabelu | Aplikacija poseduje podatke; tabela je izveštaj | Izmene u tabeli se ne vraćaju u bazu |
| Automatizacioni alat u sredini | Bez koda za jednostavne tokove | Još jedna pretplata; teže za otklanjanje grešaka |
Za sve sa mnogo korisnika ili osetljivim podacima, baza je bolji izvor istine. Pogledajte šta je baza podataka.
Upiti za AI alat za pravljenje aplikacija
Čitanje tabele:
Prikaži karticu „Menu” naše Google tabele na stranici sa menijem. Koristi Google Sheets API sa servera, sa servisnim nalogom čiji je JSON ključ u tajni GOOGLE_SERVICE_ACCOUNT_JSON, a ID tabele u SHEET_ID. Pročitaj opseg Menu!A2:D (naziv, opis, cena, kategorija). Keširaj rezultat 5 minuta. Ako API ne radi, prikaži poslednju keširanu verziju. Ključ nikada ne šalji u pregledač.
Upis redova:
Kada neko pošalje kontakt formular, sačuvaj ga u našoj bazi i takođe dodaj red na karticu „Leads” (datum, ime, email, poruka) koristeći spreadsheets.values.append sa valueInputOption RAW. Ako Google vrati 429, pokušaj ponovo sa eksponencijalnim čekanjem; ako i dalje ne uspe, zadrži lead u bazi i pokušaj kasnije.
Česte greške
- Zaboravljena deljenja tabele sa emejl adresom servisnog naloga. API tada vraća grešku dozvola, iako je ključ ispravan.
- Ključ u frontend-u ili repozitorijumu. JSON ključ daje pristup svim tabelama podeljenim sa njim. Pogledajte kako čuvati API ključeve bezbednim.
- USER_ENTERED za unos korisnika, što omogućava ubacivanje formula.
- Poziv API-ja pri svakom zahtevu i udaranje u minutnu kvotu na prvom skoku saobraćaja.
- Oslanjanje na pozicije kolona. Neko ubaci kolonu, pa aplikacija čita pogrešne podatke. Čitajte red zaglavlja i mapirajte po imenu, ili zaključajte zaglavlje.
- Deljenje tabele šire nego što treba. „Anyone with the link” je čini javnom.
- Korišćenje tabele kao baze za više korisnika. Istovremeni upisi i nedostajuće dozvole dovode do gubitka ili curenja podataka.
Kontrolna lista
- Sheets API uključen; servisni nalog napravljen
- Tabela podeljena sa emejl adresom servisnog naloga sa najmanjom potrebnom ulogom
- Ključ i ID tabele sačuvani kao tajne na serveru
- Svi pozivi se prave sa servera
- Imena kartica korišćena u opsezima
- RAW korišćen za tekst koji unose korisnici
- Čitanja keširana; 429 obrađen čekanjem
- Aplikacija se graciozno ponaša kad Sheets nije dostupan
- Odlučeno koja strana je izvor istine
Google Sheets u Mythex-u
Mythex ima dva različita načina rada sa tabelama. Konektori povezuju vaš Google nalog sa Mythex-om, pa agent može da ih koristi dok pravite aplikaciju, na primer da pročita tabelu i napravi kontrolnu tablu iz nje. Dokumentacija kaže da akreditiv ostaje kod Mythex-ovog servisa za povezivanje i nikada ne ulazi u vaš kod (pogledajte Konektore, i odobrite svaku dozvolu koju Google traži). Da bi objavljena aplikacija sama čitala ili pisala tabelu, pouzdan put je onaj iz ovog vodiča: ključ servisnog naloga sačuvan kao tajna projekta i pozivi Sheets API-ju sa servera, kao u Integrate any API. Ako ste prerasli tabelu, zamolite agenta da prebaci podatke u bazu projekta i napravi kontrolnu tablu nad njom.
Pitanja
Kako moja aplikacija može da čita privatnu Google tabelu?
Uobičajeno preko Google Cloud servisnog naloga: uključite Sheets API, napravite servisni nalog i njegov ključ, pa tabelu podelite sa emejl adresom servisnog naloga kao Viewer ili Editor. Server koristi ključ, sačuvan kao tajna, za pozive Sheets API-ju.
Mogu li da koristim Google API ključ za pristup tabeli?
Samo za javne podatke. Google u vodiču za akreditive navodi da su API ključevi za anoniman pristup javno dostupnim podacima, na primer fajlovima podeljenim sa svakim ko ima link. Privatne tabele zahtevaju servisni nalog ili OAuth.
Koja su ograničenja Google Sheets API-ja?
Od septembra 2026. Google navodi 300 zahteva za čitanje i 300 za upis po minutu po projektu, i 60 svakog po minutu po korisniku po projektu, bez dnevnog ograničenja. Kada se pređe, vraća se greška 429; Google preporučuje eksponencijalno čekanje (exponential backoff).
Da li tabelu treba da koristim kao bazu podataka aplikacije?
Radi za male aplikacije sa malim saobraćajem, gde ljudi takođe menjaju podatke u tabeli. Za mnogo korisnika, česte upise, veze između zapisa ili dozvole po korisniku, prava baza je pouzdanija, a i dalje možete da izvezete podatke u tabelu.