Як підключити Google Sheets до застосунку
Щоб підключити Google Sheets до застосунку, увімкніть Google Sheets API у проєкті Google Cloud, створіть service account, надайте доступ до таблиці для email цього service account і збережіть його ключ як секрет на сервері. Далі ваш сервер читає рядки через spreadsheets.values.get і додає їх через spreadsheets.values.append. Якщо користувачам потрібно підключати власні таблиці, використовуйте OAuth; якщо таблиця повністю публічна, для читання достатньо простого API-ключа.
Цей гід пояснює, який метод підходить, які виклики вам знадобляться, квоти та підводні камені, а також промпти для конструктора застосунків на основі ШІ. Відомості Google взято з документації розробника Google станом на вересень 2026 року.
Навіщо підключати таблицю
Поширені причини:
- Збереження робочого процесу команди. Персонал і далі редагує прайс-лист чи розклад у Sheets, а застосунок їх показує.
- Збір даних там, де людям і так зручно дивитися. Нові реєстрації, замовлення або відповіді з форм потрапляють у рядки.
- Звітність. Експорт даних застосунку в таблицю для людей, які працюють у таблицях.
- Проміжний етап. Почніть з таблиці, а потім перейдіть на нормальну базу даних. Див. як перетворити таблицю на застосунок.
Оберіть спосіб входу застосунку в Google
Посібник Google з обліковий даних описує три типи:
| Обліковий дані | До чого дають доступ | Для чого підходять |
|---|---|---|
| API-ключ | Лише загальнодоступні дані, наприклад файли з доступом «Будь-хто з посиланням» | Читання публічної таблиці |
| Service account | Дані, якими володіє ваш застосунок, або конкретні файли, відкриті для email service account | Читання і запис ваших таблиць застосунком |
| OAuth client ID | Файли конкретного користувача після його згоди | Дозвіл кожному користувачу підключати свої таблиці |
Для більшості застосунків правильний вибір — service account: один набір облікових даних, що належить вам, із доступом лише до таблиць, якими ви явно поділилися.
Покроково з service account
- Створіть або виберіть проєкт Google Cloud і увімкніть Google Sheets API.
- Створіть service account і ключ для нього. Ключ — це JSON-файл; ставтеся до нього як до пароля.
- Надайте доступ до таблиці email service account як Viewer для читання або Editor для запису. За посібником Google це робиться через звичайний екран спільного доступу.
- Збережіть ключ як секрет на сервері, наприклад
GOOGLE_SERVICE_ACCOUNT_JSON, а ID таблиці (довгий рядок з URL таблиці) — якSHEET_ID. - Викликайте API із сервера за допомогою клієнтської бібліотеки Google для вашої мови.
- Кешуйте читання, якщо багато відвідувачів бачать ті самі дані, щоб не впиратися в квоту.
Виклики, які вам знадобляться
Із посібника Google з читання і запису значень:
| Метод | Що робить |
|---|---|
spreadsheets.values.get | Читає один діапазон, наприклад Leads!A1:E |
spreadsheets.values.batchGet | Читає кілька діапазонів одним запитом |
spreadsheets.values.update | Записує у конкретний діапазон |
spreadsheets.values.append | Додає рядки після наявних даних у таблиці |
Діапазони задаються у нотації A1. Google зазначає, що діапазон без назви аркуша, наприклад A1:B2, застосовується до першого аркуша, тож називайте вкладку явно, щоб уникнути несподіванок, коли хтось переставить вкладки.
RAW проти USER_ENTERED
Для запису потрібен valueInputOption:
- RAW зберігає саме те, що ви надіслали, як текст.
=1+2зберігається як текст=1+2. - USER_ENTERED обробляє вхідні дані так, ніби їх ввели в Sheets: дати стають датами, а
=1+2стає формулою.
Якщо ви записуєте текст, який користувачі ввели у вашому застосунку, використовуйте RAW. З USER_ENTERED хтось може надіслати формулу, яка спрацює, коли колега відкриє таблицю.
Квоти і помилки
Станом на вересень 2026 року сторінка лімітів Google Sheets API містить такі значення:
| Ліміт | Запити на читання | Запити на запис |
|---|---|---|
| На хвилину для проєкту | 300 | 300 |
| На хвилину для користувача в межах проєкту | 60 | 60 |
Денного ліміту немає, доки ви в межах хвилинних квот. Перевищення повертає 429: Too many requests, і Google рекомендує експоненційну затримку з обрізанням: чекайте довше після кожної невдалої спроби, з випадковою затримкою, до певного максимуму. Один запит, що триває понад 180 секунд, завершується тайм-аутом.
На практиці: не викликайте API при кожному перегляді сторінки. Кешуйте дані таблиці хоча б на хвилину, групуйте читання через batchGet і групуйте записи, де це можливо.
Варіанти та компроміси
| Підхід | Плюси | Мінуси |
|---|---|---|
| Таблиця як живе джерело даних | Персонал редагує в звичному інструменті; не потрібно будувати адмін-екрани | Квоти, немає прав на рядки, легко зламати, перейменувавши стовпець |
| Синхронізація таблиці в базу даних | Швидке і надійне читання; застосунок працює, навіть коли Sheets недоступний | Потрібна задача синхронізації та правило, яка сторона має пріоритет |
| База даних першою, експорт у таблицю | Застосунок володіє даними; таблиця є звітом | Зміни в таблиці не повертаються в застосунок |
| Посередник-автоматизація | Простий сценарій без коду | Ще одна підписка; важче налагоджувати |
Для всього, де багато користувачів або чутливі дані, база даних — надійніше джерело істини. Див. що таке база даних.
Промпти для вашого ШІ-конструктора
Читання таблиці:
Покажи вкладку «Menu» нашої Google-таблиці на сторінці меню. Використовуй Google Sheets API із сервера з service account, JSON-ключ якого зберігається в секреті GOOGLE_SERVICE_ACCOUNT_JSON, а ID таблиці — у SHEET_ID. Читай діапазон Menu!A2:D (назва, опис, ціна, категорія). Кешуй результат на 5 хвилин. Якщо API не відповідає, показуй останню закешовану версію. Ніколи не надсилай ключ у браузер.
Запис рядків:
Коли хтось надсилає контактну форму, зберігай її в нашій базі даних і також додавай рядок у вкладку «Leads» (дата, ім'я, email, повідомлення) за допомогою spreadsheets.values.append з valueInputOption RAW. Якщо Google повертає 429, повторюй з експоненційною затримкою; якщо все одно не виходить, залиш лід у базі даних і повторі пізніше.
Поширені помилки
- Забути надати доступ до таблиці email service account. API тоді повертає помилку доступу, хоча ключ правильний.
- Ключ у фронтенді чи репозиторії. JSON-ключ дає доступ до кожної таблиці, якою з ним поділилися. Див. як зберігати ключі API в безпеці.
- Використання USER_ENTERED для введення користувачів, що дозволяє впровадження формул.
- Виклик API при кожному запиті і досягнення квоти на хвилину під час першого сплеску трафіку.
- Залежність від позицій стовпців. Хтось вставить стовпець, і застосунок читатиме не ті дані. Читайте рядок заголовків і зіставляйте за назвою або зафіксуйте заголовок.
- Надання доступу до таблиці ширше, ніж потрібно. «Будь-хто з посиланням» робить її публічною.
- Використання таблиці як багатокористувацької бази даних. Одночасні записи та відсутні права призводять до втрати або витоку даних.
Контрольний список
- Sheets API увімкнено; service account створено
- Таблиці надано доступ для email service account з мінімально потрібною роллю
- Ключ і ID таблиці збережено як секрети на сервері
- Усі виклики здійснюються з сервера
- У діапазонах використовуються назви вкладок
- Для тексту, введеного користувачами, використовується RAW
- Читання кешуються; 429 обробляється з затримкою
- Застосунок коректно працює, якщо Sheets недоступний
- Визначено, яка сторона є джерелом істини
Google Sheets у Mythex
У Mythex є два різні способи працювати з Sheets. Конектори пов'язують ваш обліковий запис Google з Mythex, щоб агент міг ним користуватися під час створення, наприклад, читати таблицю, щоб побудувати з неї дашборд. За документацією, облікові дані зберігаються у сервісі підключень Mythex і ніколи не потрапляють у ваш код (див. Connectors; схвалюйте кожен дозвіл, який запитує Google). Щоб опублікований застосунок сам читав чи записував таблицю, надійний шлях — той, що описано в цьому гіді: ключ service account, збережений як секрет проєкту, і виклики Sheets API з вашого сервера, як у Integrate any API. Якщо таблиця вже не справляється, попросіть агента перенести дані в базу даних проєкту та побудувати на ній дашборд.
Запитання
Як мій застосунок може читати приватну Google-таблицю?
Найпоширеніший спосіб — service account у Google Cloud: увімкніть Sheets API, створіть service account і його ключ, а потім надайте таблиці доступ для email цього service account як Viewer або Editor. Ваш сервер використовує ключ, збережений як секрет, щоб викликати Sheets API.
Чи можна використовувати API-ключ Google для доступу до таблиці?
Лише для публічних даних. Посібник Google з облікових даних каже, що API-ключі призначені для анонімного доступу до загальнодоступних даних, наприклад до файлів, відкритих для кожного, хто має посилання. Приватні таблиці потребують service account або OAuth.
Які ліміти Google Sheets API?
Станом на вересень 2026 року Google вказує 300 запитів на читання і 300 на запис на хвилину для проєкту, а також 60 кожного типу на хвилину для користувача в межах проєкту, без денного ліміту. Перевищення призводить до помилки 429; Google рекомендує експоненційну затримку з обрізанням.
Чи варто використовувати Google Sheets як базу даних застосунку?
Це працює для невеликих застосунків з невеликим трафіком, де люди також редагують дані в таблиці. Для багатьох користувачів, частих записів, зв'язків між записами або окремих прав для кожного користувача надійніша справжня база даних, а дані все одно можна експортувати в таблицю.