Install
Application Register
To use Dropbox API an application needs creating at https://www.dropbox.com/developers/apps
Create a new application, select either Dropbox API or Dropbox Business API Next select the type of access needed either the app folder (useful for isolating to a single folder), or full Dropbox. Next copy and paste the APP Key and App Secret into your .env file:
DROPBOX_CLIENT_ID=
DROPBOX_SECRET_ID=
Now enter your desired redirect URL. This is the URL your application will use to connect to Dropbox API.
A common URL is https://domain.com/dropbox/connect
Install
Via Composer
composer require dcblogdev/laravel-dropbox
Config
You can publish the config file with:
php artisan vendor:publish --provider="Dcblogdev\Dropbox\DropboxServiceProvider" --tag="config"
When published, the config/dropbox.php config file contains, make sure to publish this file and change the scopes to match the scopes of your Dropbox app, inside Dropbox app console.
<?php
return [
/*
* set the client id
*/
'clientId' => env('DROPBOX_CLIENT_ID'),
/*
* set the client secret
*/
'clientSecret' => env('DROPBOX_SECRET_ID'),
/*
* Set the url to trigger the oauth process this url should call return Dropbox::connect();
*/
'redirectUri' => env('DROPBOX_OAUTH_URL'),
/*
* Set the url to redirecto once authenticated;
*/
'landingUri' => env('DROPBOX_LANDING_URL', '/'),
/**
* Set access token, when set will bypass the oauth2 process
*/
'accessToken' => env('DROPBOX_ACCESS_TOKEN', ''),
/**
* Set access type, options are offline and online
* Offline - will return a short-lived access_token and a long-lived refresh_token that can be used to request a new short-lived access token as long as a user's approval remains valid.
*
* Online - will return a short-lived access_token
*/
'accessType' => env('DROPBOX_ACCESS_TYPE', 'offline'),
/*
set the scopes to be used
*/
'scopes' => 'account_info.read files.metadata.write files.metadata.read files.content.write files.content.read',
];
Migration
You can publish the migration with:
php artisan vendor:publish --provider="Dcblogdev\Dropbox\DropboxServiceProvider" --tag="migrations"
After the migration has been published you can create the tokens tables by running the migration:
php artisan migrate
.ENV Configuration
Ensure you've set the following in your .env file:
DROPBOX_CLIENT_ID=
DROPBOX_SECRET_ID=
DROPBOX_OAUTH_URL=https://domain.com/dropbox/connect
DROPBOX_LANDING_URL=https://domain.com/dropbox
DROPBOX_ACCESS_TYPE=offline
Bypass Oauth2 You can bypass the oauth2 process by generating an access token in your dropbox app and entering it on the .env file:
DROPBOX_ACCESS_TOKEN=