2017 © Pedro Peláez
 

library dropbox-api

A minimal implementation of Dropbox API v2

image

spatie/dropbox-api

A minimal implementation of Dropbox API v2

  • Thursday, July 19, 2018
  • by Spatie
  • Repository
  • 7 Watchers
  • 61 Stars
  • 122,610 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 26 Forks
  • 0 Open issues
  • 18 Versions
  • 23 % Grown

The README.md

A minimal implementation of Dropbox API v2

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads, (*1)

This is a minimal PHP implementation of the Dropbox API v2. It contains only the methods needed for our flysystem-dropbox adapter. We are open however to PRs that add extra methods to the client., (*2)

Here are a few examples on how you can use the package:, (*3)

$client = new Spatie\Dropbox\Client($authorizationToken);

//create a folder
$client->createFolder($path);

//list a folder
$client->listFolder($path);

//get a temporary link
$client->getTemporaryLink($path);

Support us

, (*4)

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products., (*5)

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall., (*6)

Installation

You can install the package via composer:, (*7)

``` bash composer require spatie/dropbox-api, (*8)


## Usage The first thing you need to do is get an authorization token at Dropbox. Unlike [other companies](https://google.com) Dropbox has made this very easy. You can just generate a token in the [App Console](https://www.dropbox.com/developers/apps) for any Dropbox API app. You'll find more info at [the Dropbox Developer Blog](https://blogs.dropbox.com/developers/2014/05/generate-an-access-token-for-your-own-account/). With an authorization token you can instantiate a `Spatie\Dropbox\Client`. ```php $client = new Spatie\Dropbox\Client($authorizationToken);

or alternatively you can implement Spatie\Dropbox\TokenProvider which will provide the access-token from its TokenProvider->getToken(): string method., (*9)

If you use oauth2 to authenticate and to acquire refresh-tokens and access-tokens, (like thephpleague/oauth2-client), you can create an adapter that internally takes care of token-expiration and refreshing tokens, and at runtime will supply the access-token via the TokenProvider->getToken(): string method., (*10)

(Dropbox announced they will be moving to short-lived access_tokens mid 2021)., (*11)

// implements Spatie\Dropbox\TokenProvider
$tokenProvider = new AutoRefreshingDropBoxTokenService($refreshToken);
$client = new Spatie\Dropbox\Client($tokenProvider);

or alternatively you can authenticate as an App using your App Key & Secret., (*12)

$client = new Spatie\Dropbox\Client([$appKey, $appSecret]);

If you only need to access the public endpoints you can instantiate Spatie\Dropbox\Client without any arguments., (*13)

$client = new Spatie\Dropbox\Client();

Dropbox Endpoints

Look in the source code of Spatie\Dropbox\Client to discover the methods you can use., (*14)

Here's an example:, (*15)

$content = 'hello, world';
$client->upload('/dropboxpath/filename.txt', $content, $mode='add');

$from = '/dropboxpath/somefile.txt';
$to = '/dropboxpath/archive/somefile.txt';
$client->move($from, $to);

If the destination filename already exists, dropbox will throw an Exception with 'to/conflict/file/..', (*16)

The upload() and move() methods have an optional extra 'autorename' argument to try and let dropbox automatically rename the file if there is such a conflict., (*17)

Here's an example:, (*18)

$from = '/dropboxpath/somefile.txt';
$to = '/dropboxpath/archive/somefile.txt';
$client->move($from, $to, $autorename=true);
// with autorename results in 'somefile (1).txt'

If you do not find your favorite method, you can directly use the contentEndpointRequest and rpcEndpointRequest functions., (*19)

public function contentEndpointRequest(string $endpoint, array $arguments, $body): ResponseInterface

public function rpcEndpointRequest(string $endpoint, array $parameters): array

Here's an example:, (*20)

$client->rpcEndpointRequest('search', ['path' => '', 'query' => 'bat cave']);

If you need to change the subdomain of the endpoint URL used in the API request, you can prefix the endpoint path with subdomain::., (*21)

Here's an example:, (*22)

$client->rpcEndpointRequest('content::files/get_thumbnail_batch', $parameters);

Changelog

Please see CHANGELOG for more information what has changed recently., (*23)

Testing

bash composer test, (*24)

Contributing

Please see CONTRIBUTING for details., (*25)

You can run composer pint to run the code style fixer, and composer phpstan to run the static analysis., (*26)

Security

If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker., (*27)

Postcardware

You're free to use this package (it's MIT-licensed), but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using., (*28)

Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium., (*29)

We publish all received postcards on our company website., (*30)

Credits

License

The MIT License (MIT). Please see License File for more information., (*31)

The Versions

19/07 2018

dev-master

9999999-dev https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

19/07 2018

1.6.6

1.6.6.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

15/01 2018

1.6.5

1.6.5.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

05/12 2017

1.6.4

1.6.4.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

04/12 2017

1.6.2

1.6.2.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

30/07 2017

1.6.1

1.6.1.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

29/07 2017

1.6.0

1.6.0.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

28/07 2017

1.5.3

1.5.3.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

17/07 2017

1.5.2

1.5.2.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

17/07 2017

1.5.1

1.5.1.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

13/07 2017

1.5.0

1.5.0.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

11/07 2017

1.4.0

1.4.0.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

04/07 2017

1.3.0

1.3.0.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

29/04 2017

1.2.0

1.2.0.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

22/04 2017

1.1.0

1.1.0.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

19/04 2017

1.0.1

1.0.1.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

19/04 2017

1.0.0

1.0.0.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api

19/04 2017

0.0.1

0.0.1.0 https://github.com/spatie/dropbox-api

A minimal implementation of Dropbox API v2

  Sources   Download

MIT

The Requires

 

The Development Requires

api v2 spatie dropbox dropbox-api