gpenverne / putio-drive-sdk
A bundle for explore putio files
Installs: 55
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 1
Type:bundle
Requires
- php: >=5.4
- gpenverne/psr-cloud-files: dev-master
- guzzlehttp/guzzle: ~6.0
- nicoswd/putio: 0.3.*
- symfony/class-loader: *
- symfony/config: *
- symfony/dependency-injection: *
- symfony/framework-bundle: *
- symfony/http-kernel: *
Requires (Dev)
README
## Installation Install the bundle:
$ composer require gpenverne/putio-drive-sdk
Load bunle in AppKernel:
new Gpenverne\PutioDriveBundle\PutioDriveBundle(),
Configuration
parameters:
putio:
client_id: your-client-id
client_secret: your-client-secret
callback_route: callback_route
With your custom route in callback_route (for example, to display a success message)
Add your endpoints to your routing.yml or use our controllers endpoints:
putio.callback:
path: /putio/callback
defaults: { _controller: putio.drive.controller:callbackAction }
putio.redirect:
path: /putio/redirect
defaults: { _controller: putio.drive.controller:redirectAction }
obtain the user token
Call the previous created route (putio.redirect) . After access granted, user will be redirected to previous configured "callback_route" parameter
retrieving the token
Once token obtained, "events.putio.token" event is dispatched.
This event is handled by putio drive service, and you can retrieve it using putio.drive service:
// In a controller: $token = $this->container->get('putio.drive')->getToken();
using the putio php sdk
You can use our builtin file/folder finder:
$putioDrive = $this->container->get('putio.drive'); $putioDrive->setToken($token); // Retrieving a folder $folder = $putioDrive->findByPath('/MyMovies'); // Retrieving files in the folder // Will return FileInterface and FolderInterface // cf. (psr-cloud-files)[https://packagist.org/packages/gpenverne/psr-cloud-files] $files = $folder->getFiles(); // Or retrieve a full path file // Will return FileInterface // cf. (psr-cloud-files)[https://packagist.org/packages/gpenverne/psr-cloud-files] $file = $putioDrive->findByPath('/MyMovies/MyMovie.mp4'); // Retrieving the download url: $file = $putioDrive->findByPath('/MyMovies/MyMovie.mp4'); $downloadUrl = $file->getLink();
Thanks to https://github.com/nicoSWD/put.io-api-v2, you can easily make api calls:
// In a controller, using the previous catched token: $putioApiClient = $this->container->get('putio.drive')->getApiClient(); // In a controller, using a custom token: $putioApiClient = $this->container->get('putio.drive')->getApiClient('custom token');