How to Backup Store On Google Drive in Laravel 9?
May 04, 2022 . Admin
Hello Friends,
Now let's see example of how to project backup store on google drive in laravel 9 application. We will talk about how to integrate google drive apis in laravel 9 app and store backup on google drive.
In this tutorial, We will learn laravel 9 store backup on google drive example. Google drive integration is easy in laravel 9 app. And this is because of the spatie/laravel-backup package. If you do not know how to google drive get client id and secret of google developer console, then you can create Google App in Google Developer Console by following the steps given below.
Here i will give you full example for laravel 9 store backup on google drive. So let's follow bellow example step by step.
Step 1: Download LaravelLet us begin the tutorial by installing a new laravel application. if you have already created the project, then skip following step.
composer create-project laravel/laravel example-app
Step 2: Create Project on Google Platform
In this step, you can visit Google Developer Console. And create a new project as following in below picture:
Step 3: Enable Google Drive API
In this step, you can visit to “Library” of google search console and search for “Google Drive API“:
Now, Visit “OAuth Consent Screen“. Here you will get options to select user type, select “External” option, and click the “CREATE” button.
In this step, You can fill the following details like “App Name“, “User support email” and “Email” in the Developer contact information and click Save And Continue button. For other forms “Scopes“, “Test Users” and “Summary” click on Save And Continue button and go to the dashboard. Don’t worry about the other fields.

Now. Click On the OAuth consent screen, you will see that the App’s Publishing status is testing. Here we need to publish the App. So, click the Publish App button and confirm.

Now, Visit back to Credentials, click the button that says “Create Credentials” and select “OAuth Client ID“.

In this step, you can fill the bellow details like application type and name. Let's fill the inforamtion.

Finally, Click Create and take note of your Client ID and Client Secret.
Step 9: Authorize Google DriveNow click here https://developers.google.com/oauthplayground fill the bellow inforamtion.
In the top right corner, click the settings icon, check “Use your own OAuth credentials” and paste your Client ID and Client Secret.

on the left, scroll to “Drive API v3”, expand it, and check each of the scopes.

Click “Authorize APIs” and allow access to your account when prompted.
Step 11: Google Drive Api v3In this When you get to step 9, check “Auto-refresh the token before it expires” and click “Exchange authorization code for tokens“.

Now, complete this step and click on step 1 again and you should see your refresh token.

Now you need to folder ID that is optional. If you set folder ID to null, in that case, it is going to store backup files in the root path of Google Drive.
You can get the folder ID from the URL, as shown in the below image.

Now, you have got Google Client ID, CLIENT SECRET, REFRESH TOKEN, and FOLDER ID. Please save it in any text file. Because you need to update these values in the .env file of your laravel 9 app.
Step 14: Setup DatabaseAfter successfully install laravel 9 Application, Go to your project .env file and set up database credential and move next step :
.envDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=here your database name DB_USERNAME=here database username DB_PASSWORD=here database passwordStep 15: Install spatie/laravel-backup
In this step, we need to install Install spatie/laravel-backup laravel package in our application. so let's open terminal and run bellow command:
composer require spatie/laravel-backup
Successfully install package then execute the following command on terminal to publish this installed package:
php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
It will publish the configuration file in config/backup.php. Now, configure your backup according to your requirement.
Now, you need to add google in the disk option in the config/backup.php.
config/backup.php'backup' => [ 'name' => '', ], 'disks' => [ 'google', 'local', ],Step 16: Setup Google Drive as Filesystem
In this step, you need to execute the following command on terminal to install a Filesystem adapter for Google drive. So, run the following command in your terminal:
composer require nao-pon/flysystem-google-drive:~1.1
php artisan make:provider GoogleDriveServiceProvider
Then, inside the boot() method add the Google driver for the Laravel filesystem:
app/Providers/GoogleDriveServiceProvider.php<?php /** * Write code on Method * * @return response() */ public function boot() { \Storage::extend('google', function ($app, $config) { $client = new \Google_Client(); $client->setClientId($config['clientId']); $client->setClientSecret($config['clientSecret']); $client->refreshToken($config['refreshToken']); $service = new \Google_Service_Drive($client); $adapter = new \Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter($service, $config['folderId']); return new \League\Flysystem\Filesystem($adapter); }); }
After this, register the service provider by adding the following line in the providers array of config/app.php.
config/app.php'providers' => [ // ... App\Providers\GoogleDriveServiceProvider::class, ];Step 17: Add Configure Google Drive Details
In this step, configure Google drive app with this laravel app. So, open your laravel 9 project in any text editor. Then navigate the config directory and open filesystem.php file and add the client id, secret and callback url:
config/filesystem.phpreturn [ 'disks' => [ // ... 'google' => [ 'driver' => 'google', 'clientId' => env('GOOGLE_DRIVE_CLIENT_ID'), 'clientSecret' => env('GOOGLE_DRIVE_CLIENT_SECRET'), 'refreshToken' => env('GOOGLE_DRIVE_REFRESH_TOKEN'), 'folderId' => env('GOOGLE_DRIVE_FOLDER_ID'), ], // ... ], ];
And also you need to update .env file of laravel 9 app. In this environment file you need to add the following Google drive credentials:
Step 18: Setup .envIn this step you can add client id and secret and token and folder id in env file so let's open env file and put the bellow code.
.envGOOGLE_DRIVE_CLIENT_ID=xxx.apps.googleusercontent.com GOOGLE_DRIVE_CLIENT_SECRET=xxx GOOGLE_DRIVE_REFRESH_TOKEN=xxx GOOGLE_DRIVE_FOLDER_ID=nullRun Backup Command
In this step, you can open terminal and run bellow command:
php artisan backup:run
I hope It will help you....