Інтеграція 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 робочий день.







