Google Sheets + Laravel
(Opcional) Crear nuevo proyecto en https://console.cloud.google.com/projectcreate
Configurar el content screen como aplicación externa y tu correo de contacto en https://console.cloud.google.com/apis/credentials/consent
Crear un OAuth client ID tipo Web application: https://console.cloud.google.com/apis/credentials/oauthclient
Pegar en
.env
las claves en sus correspondientes camposGOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET=
Crear una credencial de servicios en con rol de propietario (owner) https://console.cloud.google.com/iam-admin/serviceaccounts/create
Copiar la el correo de la cuenta de servicios de https://console.cloud.google.com/apis/credentials
Dar acceso a ese correo en el archivo de Google Sheets con los permisos correspondientes
Entra a https://console.cloud.google.com/iam-admin/serviceaccounts
Da clic en los puntos suspensivos y elige Manage keys
Selecciona ADD KEY, Create new key, JSON, CREATE
Guarda la llave JSON en la carpeta
storage
de tu proyecto de LaravelAgrega a
.env
las siguientes variables de entornoGOOGLE_SERVICE_ENABLED=true GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION=../storage/credentials.json
En https://developers.google.com/console, habilitar las APIs
Google Drive API
Google Sheets API
Laravel
Instalar laravel-google-sheets
composer require revolution/laravel-google-sheets
Publicar configuración
php artisan vendor:publish --tag="google-config"
En
config/google.php
especifica los scopes// ... 'scopes' => [\Google\Service\Sheets::DRIVE, \Google\Service\Sheets::SPREADSHEETS], // ...
Guardar como colección el contenido de una hoja de una Google Sheet
use Sheets; // ... $sheets = Sheets::spreadsheet('id_archivo_google_sheets')->sheet('nombre_de_la_hoja')->get(); $header = $sheets->pull(0); $coleccion = Sheets::collection($header, $sheets);