digitalzenworks / google-api-authorization
Google API Authorization Package File
Fund package maintenance!
jamesjohnmcguire
Requires
- google/apiclient: ^2.11
Requires (Dev)
README
A library for making authorization for Google API services easy.
Getting Started
Requirements/dependencies
Installation
Git
git clone https://github.com/jamesjohnmcguire/GoogleApiAuthorizationPhp
Composer
composer require https://packagist.org/packages/digitalzenworks/google-api-authorizer
Usage:
There is one main class with one main static method. You can specify the authorization mode, such as 'by tokens' or 'service account' You can also use Mode::Discover, which will attempt to go through several different types of authorization until success. If none of the automatic modes succeed and promptUser is true, it will try some of the user interaction modes. You can call it like this:
require_once 'vendor/autoload.php'; use DigitalZenWorks\GoogleApiAuthorization\GoogleAuthorization; use DigitalZenWorks\GoogleApiAuthorization\Mode; $client = Authorizer::authorize( Mode::Discover, $credentialsFilePath, $serviceAccountFilePath, $tokensFilePath, 'Google Drive API File Uploader', ['https://www.googleapis.com/auth/drive'], 'http://localhost:8000/test.php', ['promptUser' => false, 'showWarnings' => false]); if ($client === null) { echo 'Oops, authorization failed'; } else { echo 'Client is initialized and authorized, lets go'; }
The main method parameters are:
The different modes are:
The different options are:
Additional Examples
You can call the authorization modes directly, such as:
$client = Authorizer::authorizeServiceAccount( $serviceAccountFilePath, 'Google Drive API File Uploader', ['https://www.googleapis.com/auth/drive'], false); $client = Authorizer::authorizeToken( $credentialsFilePath, $tokensFilePath, 'Google Drive API File Uploader', ['https://www.googleapis.com/auth/drive'], false);
Using an instanciated object:
$authorizer = new Authorizer('Google Drive API File Uploader', ['https://www.googleapis.com/auth/drive'], ['promptUser' => false, 'showWarnings' => false]); $client = $authorizer->apiAuthorize( Mode::Discover, $this->credentialsFilePath, $this->serviceAccountFilePath, $this->tokensFilePath, 'http://localhost:8000/test.php');
View the tests.php or UnitTests.php files for more examples.
Additional Notes
Even when using the 'service account' mode, the service account file is optional. If a valid file doesn't exist, it will attempt to use the file specified in the environment variable GOOGLE_APPLICATION_CREDENTIALS.
Contributing
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Process:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Coding style
Please match the current coding style. Most notably:
- One operation per line
- Use complete English words in variable and method names
- Attempt to declare variable and method names in a self-documenting manner
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
James John McGuire - @jamesmc - jamesjohnmcguire@gmail.com
Project Link: https://github.com/jamesjohnmcguire/GoogleApiAuthorizationPhp