Cum conectezi Google Sheets la aplicația ta
Ca să conectezi Google Sheets la aplicația ta, activezi Google Sheets API într-un proiect Google Cloud, creezi un cont de serviciu, partajezi tabelul cu adresa de e-mail a contului de serviciu și păstrezi cheia lui ca secret pe server. Serverul tău citește apoi rândurile cu spreadsheets.values.get și adaugă rânduri cu spreadsheets.values.append. Dacă utilizatorii trebuie să-și conecteze propriile tabele, folosești OAuth, iar dacă tabelul este complet public, pentru citire ajunge o simplă cheie API.
Ghidul acoperă ce metodă se potrivește, apelurile de care ai nevoie, limitele și capcanele, precum și prompturi pentru un constructor de aplicații cu AI. Detaliile Google provin din documentația pentru dezvoltatori a Google, la septembrie 2026.
De ce să conectezi un tabel
Motive obișnuite:
- Să păstrezi fluxul de lucru al echipei. Colegii continuă să editeze o listă de prețuri sau un program în Sheets; aplicația îl afișează.
- Să colectezi date acolo unde oamenii se uită deja. Înscrierile noi, comenzile sau răspunsurile la formulare ajung ca rânduri.
- Raportare. Exporți datele aplicației într-un tabel pentru oamenii care lucrează zilnic în tabele.
- O treaptă intermediară. Pornești de la tabel și treci apoi la o bază de date adevărată. Vezi cum transformi un tabel într-o aplicație.
Alege cum se autentifică aplicația ta la Google
Ghidul Google despre credențiale descrie trei tipuri:
| Credențial | Ce poate accesa | Potrivit pentru |
|---|---|---|
| Cheie API | Doar date disponibile public, cum sunt fișierele partajate cu „Oricine are linkul” | Citirea unui tabel public |
| Cont de serviciu | Date deținute de aplicația ta sau fișiere specifice partajate cu adresa de e-mail a contului | Aplicația ta citește și scrie în tabelele tale |
| ID client OAuth | Fișierele unui utilizator, după ce acesta își dă acordul | Lăsarea fiecărui utilizator să-și conecteze propriile tabele |
Pentru majoritatea aplicațiilor, contul de serviciu este alegerea potrivită: un set de credențiale, deținut de tine, cu acces doar la tabelele pe care le partajezi explicit cu el.
Pas cu pas, cu un cont de serviciu
- Creează sau alege un proiect Google Cloud și activează API-ul Google Sheets.
- Creează un cont de serviciu și o cheie pentru el. Cheia este un fișier JSON; tratează-o ca pe o parolă.
- Partajează tabelul cu adresa de e-mail a contului de serviciu, ca Viewer pentru citire sau Editor pentru scriere. Ghidul Google spune că asta se face din ecranul obișnuit de partajare.
- Păstrează cheia ca secret pe serverul tău, de exemplu
GOOGLE_SERVICE_ACCOUNT_JSON, plus ID-ul tabelului (șirul lung din URL-ul tabelului) caSHEET_ID. - Apelează API-ul de pe server cu biblioteca clientă Google pentru limbajul tău.
- Pune citirile în cache dacă mulți vizitatori văd aceleași date, ca să nu atingi limita.
Apelurile pe care le vei folosi
Din ghidul Google pentru citirea și scrierea valorilor:
| Metodă | Ce face |
|---|---|
spreadsheets.values.get | Citește un interval, cum este Leads!A1:E |
spreadsheets.values.batchGet | Citește mai multe intervale într-o singură cerere |
spreadsheets.values.update | Scrie într-un interval specific |
spreadsheets.values.append | Adaugă rânduri după datele existente dintr-un tabel |
Intervalele folosesc notația A1. Google notează că un interval fără numele foii, cum este A1:B2, se aplică primei foi, așa că numește explicit fila ca să eviți surprize când cineva reordonează filele.
RAW vs USER_ENTERED
Scrierile au nevoie de un valueInputOption:
- RAW stochează exact ce trimiți, ca text.
=1+2este salvat ca textul=1+2. - USER_ENTERED tratează intrarea ca și cum ar fi fost tastată în Sheets: datele devin date, iar
=1+2devine o formulă.
Dacă scrii text pe care utilizatorii l-au tastat în aplicația ta, folosește RAW. Cu USER_ENTERED, cineva ar putea trimite o formulă care se execută când un coleg deschide tabelul.
Limite și erori
La septembrie 2026, pagina de limite a API-ului Sheets de la Google listează:
| Limită | Cereri de citire | Cereri de scriere |
|---|---|---|
| Pe minut pentru fiecare proiect | 300 | 300 |
| Pe minut pentru fiecare utilizator din fiecare proiect | 60 | 60 |
Nu există limită zilnică, atâta timp cât rămâi în limitele pe minut. Depășirea lor întoarce 429: Too many requests, iar Google recomandă backoff exponențial trunchiat: aștepți tot mai mult după fiecare încercare eșuată, cu o întârziere aleatorie, până la un maxim. O cerere unică care durează peste 180 de secunde expiră.
În practică: nu apela API-ul la fiecare vizualizare de pagină. Ține datele tabelului în cache un minut sau mai mult, grupează citirile cu batchGet și grupează scrierile acolo unde poți.
Opțiuni și compromisuri
| Abordare | Avantaje | Dezavantaje |
|---|---|---|
| Tabelul ca sursă de date live | Echipa editează într-un instrument familiar; nu trebuie construite ecrane de administrare | Limite, fără permisiuni pe rând, ușor de stricat prin redenumirea unei coloane |
| Sincronizare din tabel într-o bază de date | Citiri rapide și sigure; aplicația continuă să funcționeze dacă Sheets este indisponibil | Ai nevoie de un job de sincronizare și de o regulă pentru care parte câștigă |
| Baza de date întâi, export în tabel | Aplicația deține datele; tabelul este un raport | Modificările din tabel nu revin în aplicație |
| Instrument de automatizare între ele | Fără cod pentru fluxuri simple | Încă un abonament; mai greu de depanat |
Pentru orice cu mulți utilizatori sau date sensibile, o bază de date este sursa de adevăr mai bună. Vezi ce este o bază de date.
Prompturi pentru constructorul tău AI
Citirea unui tabel:
Arată fila „Menu” din tabelul nostru Google Sheets pe pagina de meniu. Folosește API-ul Google Sheets de pe server, cu un cont de serviciu a cărui cheie JSON este în secretul GOOGLE_SERVICE_ACCOUNT_JSON, iar ID-ul tabelului în SHEET_ID. Citește intervalul Menu!A2:D (nume, descriere, preț, categorie). Ține rezultatul în cache 5 minute. Dacă API-ul eșuează, arată ultima versiune din cache. Nu trimite niciodată cheia în browser.
Scrierea rândurilor:
Când cineva trimite formularul de contact, salvează-l în baza noastră de date și adaugă și un rând în fila „Leads” (dată, nume, e-mail, mesaj), folosind spreadsheets.values.append cu valueInputOption RAW. Dacă Google întoarce 429, reîncearcă cu backoff exponențial; dacă tot eșuează, păstrează lead-ul în baza de date și reîncearcă mai târziu.
Greșeli frecvente
- Uitatul de a partaja tabelul cu adresa de e-mail a contului de serviciu. API-ul întoarce atunci o eroare de permisiune, deși cheia este corectă.
- Cheia în frontend sau în repository. Cheia JSON dă acces la fiecare tabel partajat cu ea. Vezi cum păstrezi în siguranță cheile API.
- Folosirea USER_ENTERED pentru datele introduse de utilizatori, ceea ce permite injectarea de formule.
- Apelarea API-ului la fiecare cerere și atingerea limitei pe minut la primul vârf de trafic.
- Dependența de pozițiile coloanelor. Cineva inserează o coloană și aplicația citește date greșite. Citește rândul de antet și mapează după nume sau blochează antetul.
- Partajarea tabelului mai larg decât e nevoie. „Oricine are linkul” îl face public.
- Folosirea unui tabel ca bază de date cu mulți utilizatori. Scrierile concurente și permisiunile lipsă duc la pierderi sau scurgeri de date.
Listă de verificare
- API-ul Sheets activat; cont de serviciu creat
- Tabelul partajat cu adresa de e-mail a contului de serviciu, cu rolul minim necesar
- Cheia și ID-ul tabelului păstrate ca secrete pe server
- Toate apelurile făcute de pe server
- Numele filelor folosite în intervale
- RAW folosit pentru textul furnizat de utilizatori
- Citirile în cache; 429 tratat cu backoff
- Aplicația se degradează elegant dacă Sheets nu este disponibil
- Decis care parte este sursa de adevăr
Google Sheets în Mythex
Mythex are două moduri diferite de a lucra cu Sheets. Conectorii leagă contul tău Google de Mythex, ca agentul să-l poată folosi cât construiești, de exemplu citind un tabel ca să construiască din el un dashboard. Documentația spune că acreditarea rămâne la serviciul de conexiune al Mythex și nu ajunge niciodată în codul tău (vezi Conectori, și aprobă fiecare permisiune cerută de Google). Pentru ca aplicația publicată să citească sau să scrie singură într-un tabel, varianta sigură este cea din acest ghid: o cheie de cont de serviciu păstrată ca secret al proiectului și apeluri API Sheets de pe serverul tău, ca în Integrează orice API. Dacă depășești tabelul, cere agentului să mute datele în baza de date a proiectului și să construiască un dashboard deasupra lor.
Întrebări
Cum poate aplicația mea să citească un Google Sheet privat?
Modul obișnuit este un cont de serviciu din Google Cloud: activezi API-ul Sheets, creezi contul de serviciu și cheia lui, apoi partajezi tabelul cu adresa de e-mail a contului de serviciu, ca Viewer sau Editor. Serverul tău folosește cheia, păstrată ca secret, ca să apeleze API-ul Sheets.
Pot folosi o cheie API Google ca să accesez un tabel?
Doar pentru date publice. Ghidul Google despre credențiale spune că cheile API sunt pentru accesul anonim la date disponibile public, cum sunt fișierele partajate cu oricine are linkul. Tabelele private au nevoie de un cont de serviciu sau de OAuth.
Care sunt limitele API-ului Google Sheets?
La septembrie 2026, Google listează 300 de cereri de citire și 300 de cereri de scriere pe minut pentru fiecare proiect și 60 din fiecare pe minut pentru fiecare utilizator din fiecare proiect, fără limită zilnică. Depășirea lor întoarce o eroare 429; Google recomandă backoff exponențial trunchiat.
Ar trebui să folosesc Google Sheets ca bază de date a aplicației?
Funcționează pentru aplicații mici, cu trafic redus, în care oamenii editează și datele direct în tabel. Pentru mulți utilizatori, scrieri frecvente, relații între înregistrări sau permisiuni pe utilizator, o bază de date reală este mai sigură, iar datele pot fi în continuare exportate într-un tabel.