Руководства

Как подключить Google Таблицы к приложению

Чтобы подключить Google Таблицы к приложению, включите Google Sheets API в проекте Google Cloud, создайте сервисный аккаунт, откройте доступ к таблице для email этого аккаунта и храните его ключ как секрет на сервере. Затем ваш сервер читает строки через spreadsheets.values.get и добавляет их через spreadsheets.values.append. Если пользователям нужно подключать свои таблицы, используйте OAuth, а если таблица полностью публичная, для чтения достаточно простого API-ключа.

Этот гид описывает, какой способ подходит, нужные вызовы, квоты и подводные камни, а также промпты для ИИ-конструктора приложений. Данные Google взяты из документации разработчика Google по состоянию на сентябрь 2026 года.

Зачем вообще подключать таблицу

Частые причины:

  • Сохранить привычный рабочий процесс команды. Сотрудники продолжают редактировать прайс-лист или расписание в Таблицах, а приложение их показывает.
  • Собирать данные там, где люди и так смотрят. Новые регистрации, заказы или ответы на формы попадают в строки.
  • Отчётность. Выгрузка данных приложения в таблицу для тех, кто работает в таблицах.
  • Промежуточный этап. Начните с таблицы, а потом переходите на нормальную базу данных. См. как превратить таблицу в приложение.

Выберите, как приложение входит в Google

В руководстве Google по учётным данным описаны три типа:

Учётные данныеЧто может получить доступДля чего подходят
API-ключТолько общедоступные данные, например файлы, открытые по схеме «всем, у кого есть ссылка»Чтение публичной таблицы
Сервисный аккаунтДанные, принадлежащие вашему приложению, или конкретные файлы, открытые для email сервисного аккаунтаЧтение и запись ваших таблиц приложением
OAuth Client IDФайлы пользователя, после его согласияПодключение собственных таблиц каждым пользователем

Для большинства приложений подходит сервисный аккаунт: один набор учётных данных, принадлежащий вам, с доступом только к тем таблицам, которые вы явно откроете для него.

Пошагово с сервисным аккаунтом

  1. Создайте или выберите проект Google Cloud и включите Google Sheets API.
  2. Создайте сервисный аккаунт и ключ для него. Ключ — это JSON-файл; обращайтесь с ним как с паролем.
  3. Откройте доступ к таблице для email сервисного аккаунта: Viewer для чтения или Editor для записи. По руководству Google это делается через обычное окно общего доступа.
  4. Сохраните ключ как секрет на сервере, например GOOGLE_SERVICE_ACCOUNT_JSON, а ID таблицы (длинную строку из URL таблицы) — как SHEET_ID.
  5. Вызывайте API с сервера через клиентскую библиотеку Google для вашего языка.
  6. Кешируйте чтение, если многие посетители видят одни и те же данные, чтобы не упираться в квоту.

Вызовы, которые вам понадобятся

Из руководства 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 обрабатывает данные так, как если бы их ввели в Таблицы вручную: даты становятся датами, а =1+2 становится формулой.

Если вы записываете текст, который пользователи ввели в приложении, используйте RAW. При USER_ENTERED кто-то может отправить формулу, которая сработает, когда коллега откроет таблицу.

Квоты и ошибки

По состоянию на сентябрь 2026 года страница лимитов Google Sheets API указывает:

ЛимитЗапросы на чтениеЗапросы на запись
В минуту на проект300300
В минуту на пользователя в проекте6060

Дневного лимита нет, пока вы укладываетесь в поминутные квоты. При превышении возвращается 429: Too many requests, и Google рекомендует экспоненциальную задержку с ограничением: после каждой неудачной попытки ждать дольше, со случайной добавкой, до определённого максимума. Один запрос, который длится дольше 180 секунд, прерывается по таймауту.

На практике: не вызывайте API при каждом показе страницы. Кешируйте данные таблицы минимум на минуту, объединяйте чтения через batchGet и по возможности группируйте записи.

Варианты и компромиссы

ПодходПлюсыМинусы
Таблица как живой источник данныхСотрудники работают в привычном инструменте; не нужно строить админ-экраныКвоты, нет прав на отдельные строки, легко сломать переименованием столбца
Синхронизация таблицы в базуБыстрое и надёжное чтение; приложение работает, даже если Таблицы недоступныНужна задача синхронизации и правило, чья версия побеждает
База первая, выгрузка в таблицуПриложение владеет данными; таблица — это отчётПравки в таблице обратно не попадают
Посредник-автоматизацияПростые сценарии без кодаЕщё одна подписка; сложнее отлаживать

Для всего, где много пользователей или чувствительные данные, более надёжный источник истины — база данных. См. что такое база данных.

Промпты для ИИ-конструктора

Чтение таблицы:

Покажи вкладку «Menu» нашей Google Таблицы на странице меню. Используй Google Sheets API с сервера, с сервисным аккаунтом, JSON-ключ которого лежит в секрете GOOGLE_SERVICE_ACCOUNT_JSON, а ID таблицы — в SHEET_ID. Читай диапазон Menu!A2:D (название, описание, цена, категория). Кешируй результат на 5 минут. Если API не работает, показывай последнюю закешированную версию. Никогда не отправляй ключ в браузер.

Запись строк:

Когда кто-то отправляет контактную форму, сохраняй её в нашу базу данных и также добавляй строку на вкладку «Leads» (дата, имя, email, сообщение) через spreadsheets.values.append с valueInputOption RAW. Если Google возвращает 429, повторяй с экспоненциальной задержкой; если всё равно не получается, оставь заявку в базе данных и повтори позже.

Частые ошибки

  • Забыть открыть доступ к таблице для email сервисного аккаунта. API тогда возвращает ошибку доступа, хотя ключ в порядке.
  • Ключ в интерфейсе или в репозитории. JSON-ключ даёт доступ ко всем таблицам, которые с ним открыты. См. как беречь API-ключи.
  • USER_ENTERED для пользовательского ввода, что допускает внедрение формул.
  • Вызывать API на каждый запрос и упираться в поминутную квоту при первом всплеске трафика.
  • Опираться на номера столбцов. Кто-то вставит столбец, и приложение прочитает не те данные. Читайте строку заголовков и сопоставляйте по именам или зафиксируйте заголовок.
  • Открывать таблицу шире, чем нужно. «Все, у кого есть ссылка» делает её публичной.
  • Использовать таблицу как многопользовательскую базу. Параллельные записи и отсутствие прав приводят к потере или утечке данных.

Чек-лист

  • Sheets API включён; сервисный аккаунт создан
  • Таблица открыта для email сервисного аккаунта с минимально нужной ролью
  • Ключ и ID таблицы хранятся как серверные секреты
  • Все вызовы выполняются с сервера
  • В диапазонах используются имена вкладок
  • Для пользовательского текста используется RAW
  • Чтение кешируется; 429 обрабатывается задержкой
  • Приложение корректно работает, если Таблицы недоступны
  • Решено, какая сторона — источник истины

Google Таблицы в Mythex

В Mythex есть два разных способа работать с Таблицами. Коннекторы связывают ваш аккаунт Google с Mythex, чтобы агент мог использовать его во время сборки, например читать таблицу, чтобы построить по ней дашборд. По документации, учётные данные остаются в сервисе подключений Mythex и никогда не попадают в ваш код (см. Коннекторы; одобряйте каждое разрешение, которое запрашивает Google). Чтобы опубликованное приложение само читало или записывало таблицу, надёжный путь — тот, что описан в этом гиде: ключ сервисного аккаунта как секрет проекта и вызовы Sheets API с сервера, как в Integrate any API. Если вы переросли таблицу, попросите агента перенести данные в базу проекта и построить поверх неё дашборд.

Вопросы

Как моему приложению читать приватную таблицу Google?

Обычно через сервисный аккаунт Google Cloud: включите Sheets API, создайте сервисный аккаунт и его ключ, затем откройте доступ к таблице для email сервисного аккаунта как Viewer или Editor. Сервер использует ключ, который хранится как секрет, для вызовов Sheets API.

Можно ли использовать API-ключ Google для доступа к таблице?

Только для публичных данных. В руководстве Google по учётным данным сказано, что API-ключи нужны для анонимного доступа к общедоступным данным, например к файлам, открытым для всех, у кого есть ссылка. Приватным таблицам нужны сервисный аккаунт или OAuth.

Каковы лимиты Google Sheets API?

По состоянию на сентябрь 2026 года Google указывает 300 запросов на чтение и 300 на запись в минуту на проект и по 60 каждого вида в минуту на пользователя в проекте, без дневного лимита. При превышении возвращается ошибка 429; Google рекомендует экспоненциальную задержку с ограничением.

Стоит ли использовать Google Таблицы как базу данных приложения?

Это подходит для небольших приложений с малым трафиком, где данные также редактируют в самой таблице. Если пользователей много, записи идут часто, есть связи между записями или права доступа для каждого пользователя, надёжнее настоящая база данных, а таблицу всё равно можно использовать для выгрузки отчётов.

Mythex · Pricing · Создавайте что угодно с ИИ · Шаблоны сайтов и приложений · Сравнения Mythex · Глоссарий по созданию приложений с ИИ · Бесплатные инструменты для создания приложений с ИИ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)