ceytek-labs/google-services-lite

A lightweight library for seamless integration with various Google APIs in PHP.

v1.7.1 2024-11-06 16:17 UTC

README

Google Services Lite

Total Downloads Latest Version Size License

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 manage data in a Google Sheets document:

⬆ Back to services

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>

⬆ Back to services

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'];

⬆ Back to services

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'];

⬆ Back to services

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');

⬆ Back to services

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.