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 Laravel

Let 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“:

Step 4: OAuth Consent Screen

Now, Visit “OAuth Consent Screen“. Here you will get options to select user type, select “External” option, and click the “CREATE” button.

Step 5: Fill The Information

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.

Step 6: Fill The Information

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.

Step 7: Create Credentials

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

Step 8: Fill the Credentials Detail

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 Drive

Now click here 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.

Step 10: Google Drive Api v3

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 v3

In this When you get to step 9, check “Auto-refresh the token before it expires” and click “Exchange authorization code for tokens“.

Step 12: Google Drive Api v3

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

Step 13: Create Folder Google Drive

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 Database

After successfully install laravel 9 Application, Go to your project .env file and set up database credential and move next step :

DB_DATABASE=here your database name 
DB_USERNAME=here database username
DB_PASSWORD=here database password 
Step 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.

'backup' => [
    'name' => '',
'disks' => [
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:


 * Write code on Method
 * @return response()
public function boot()
    \Storage::extend('google', function ($app, $config) {
        $client = new \Google_Client();
        $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.

'providers' => [
    // ...
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:

return [
    '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 .env

In 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.

Run Backup Command

In this step, you can open terminal and run bellow command:

php artisan backup:run

I hope It will help you....

#Laravel 9