ceytek-labs / google-services-lite
A lightweight library for seamless integration with various Google APIs in PHP.
Requires
- php: ^7.0|^8.0
- google/apiclient: ^2.0
README
Google Services Lite - Google API for PHP
Google Services Lite is a lightweight and extendable library designed to help you manage data easily using the Google Sheets API in your PHP projects. Currently, it only supports the Google Sheets API, but future versions will include support for YouTube and other Google services.
Disclaimer: This package is not an official product of Google. The developers accept no responsibility for any issues, discrepancies, or damages that may arise from its use.
Requirements
- PHP 7.0 or higher (including PHP 8)
Installation
You can add this package to your projects via Composer:
composer require ceytek-labs/google-services-lite
Services
Google Sheets
This package offers a streamlined integration with the Google Sheets API for PHP, focusing on effortless data updates within Google Sheets. Perfect for automating and enhancing your application’s data management.
Example Usage
The following example demonstrates how to update data in a Google Sheets document:
Google Sheets: How to use
To use the Google Sheets API, you need to download the required authentication file and add it to your project’s root directory. Follow the steps below to set this up:
- Create a project in the Google Cloud Console.
- Enable the Google Sheets API for your project.
- Create authentication credentials for a "Service Account."
- Download the authentication JSON file and save it in your project’s root directory as
credentials.json
. - Share the email address from the service account with the Google Sheets document you want to modify, giving it edit access.
- Don’t forget to note the sheet’s ID and the name of the tab you want to modify:
https://docs.google.com/spreadsheets/d/<id>
Google Sheets: Update
Updates the specified Google Sheets tab with the provided data, replacing all existing values. It returns the number of cells that were updated.
use CeytekLabs\GoogleServicesLite\GoogleSheets; $result = GoogleSheets::make('SPREADSHEET_ID') // Set the ID of the Google Sheets document ->setCredentials(__DIR__.'/credentials.json') // Set the authentication file ->update('Sheet1', [ // Set the name of the tab where data will be updated ["Data 1", "Data 2", "Data 3"], // Add the data to be updated ["Data 4", "Data 5", "Data 6"], ["Data 7", "Data 8", "Data 9"], ]); echo 'Number of updated cells: ' . $result['updated_cells_count'];
Google Sheets: Update in chunks
Similar to update
, but handles large datasets by splitting the data into smaller chunks to prevent exceeding API limits. It returns the total number of updated cells.
use CeytekLabs\GoogleServicesLite\GoogleSheets; $result = GoogleSheets::make('SPREADSHEET_ID') // Set the ID of the Google Sheets document ->setCredentials(__DIR__.'/credentials.json') // Set the authentication file ->updateInChunks('Sheet1', [ // Update data in smaller chunks ["Data 1", "Data 2", "Data 3"], // Add the data to be updated ["Data 4", "Data 5", "Data 6"], ["Data 7", "Data 8", "Data 9"], // For large datasets, the data will be split into chunks ], 50); // Define the chunk size (e.g., 50 rows) echo 'Number of updated cells: ' . $result['updated_cells_count'];
Google Sheets: Batch update
Updates specific cells in a Google Sheets tab using a batch request, allowing more granular control over each cell. It returns the status of the update (success or failure).
use CeytekLabs\GoogleServicesLite\GoogleSheets; $result = GoogleSheets::make('SPREADSHEET_ID') // Set the ID of the Google Sheets document ->setCredentials(__DIR__.'/credentials.json') // Set the authentication file ->batchUpdate('Sheet1', [ // Set the name of the tab where data will be updated ["Data 1", "Data 2", "Data 3"], // Add the data to be updated ["Data 4", "Data 5", "Data 6"], ["Data 7", "Data 8", "Data 9"], ]); echo 'Batch update status: ' . ($result['status'] ? 'Success' : 'Failed');
Google Sheets: Batch update in chunks
Similar to batchUpdate
, but handles large datasets by splitting the data into smaller chunks to prevent exceeding API limits. It returns the status of the update (success or failure).
use CeytekLabs\GoogleServicesLite\GoogleSheets; $result = GoogleSheets::make('SPREADSHEET_ID') // Set the ID of the Google Sheets document ->setCredentials(__DIR__.'/credentials.json') // Set the authentication file ->batchUpdateInChunks('Sheet1', [ // Update data in smaller chunks ["Data 1", "Data 2", "Data 3"], // Add the data to be updated ["Data 4", "Data 5", "Data 6"], ["Data 7", "Data 8", "Data 9"], // For large datasets, the data will be split into chunks ], 750); // Define the chunk size (e.g., 750 rows) echo 'Number of updated cells: ' . $result['updated_cells_count'];
Contributing
Feel free to submit a pull request or report an issue. Any contributions and feedback are highly appreciated!
License
This project is licensed under the MIT License.