Интеграция Google Sheets API с сайтом
Google Sheets как база данных — популярное решение для небольших проектов: менеджеры работают в привычном интерфейсе, данные доступны в реальном времени, не нужна отдельная CMS. Через Sheets API сайт читает данные из таблицы и отображает их на странице.
Аутентификация через Service Account
use Google\Client;
use Google\Service\Sheets;
$client = new Client();
$client->setAuthConfig(storage_path('app/google-service-account.json'));
$client->addScope(Sheets::SPREADSHEETS_READONLY);
$service = new Sheets($client);
$spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms';
Чтение данных
$response = $service->spreadsheets_values->get($spreadsheetId, 'Sheet1!A2:E');
$rows = $response->getValues();
$items = array_map(fn($row) => [
'name' => $row[0] ?? '',
'price' => (float) ($row[1] ?? 0),
'category' => $row[2] ?? '',
'active' => ($row[3] ?? '') === 'TRUE',
], $rows);
Кэширование
Google Sheets API имеет квоту: 300 запросов в минуту. При каждом обращении пользователя запрашивать API нельзя:
$items = Cache::remember('sheets_catalog', 300, function () use ($service, $spreadsheetId) {
$resp = $service->spreadsheets_values->get($spreadsheetId, 'Catalog!A2:F');
return array_map(fn($row) => mapRow($row), $resp->getValues());
});
Кэш на 5 минут — данные обновляются достаточно быстро для большинства задач.
Время реализации: 1 рабочий день.







