rbaskam/laravel-pcloud

Fund package maintenance!
rbaskam

Installs: 352

Dependents: 0

Suggesters: 0

Security: 0

Stars: 4

Watchers: 3

Forks: 2

Open Issues: 1

Type:project

1.0.14 2022-06-24 07:58 UTC

This package is auto-updated.

Last update: 2024-04-24 12:22:14 UTC


README

A PHP library to access pCloud API

Table of Contents

System requirements

Get started

Register your application

In order to use this SDK, you have to register your application in My applications.

Install the SDK

Using Composer

Install Composer.

$ composer require rbaskam/laravel-pcloud

or add the following to composer.json file

"require": {
  "rbaskam/laravel-pcloud": "^1.0"
}

php artisan vendor:publish --provider="Rbaskam\LaravelPCloud\Providers\CustomPCloudServiceProvider" --force

//Add the following to your .env
PCLOUD_CLIENT_ID=[Get this from https://docs.pcloud.com/my_apps/]
PCLOUD_CLIENT_SECRET=[Get this from https://docs.pcloud.com/my_apps/]
PCLOUD_ACCESS_TOKEN=[leave blank]
PCLOUD_LOCATION_ID=[leave blank]

Generate Auth

Artisan

php artisan laravel-pcloud:token

Manual

Generate Authorize Code, Navigate to below link (Replace CLIENT_ID with your application Client ID) https://my.pcloud.com/oauth2/authorize?client_id=CLIENT_ID&response_type=code

After you get the access code and the hostname, next step is to generate Access Token. **Before you navigate to below link, make sure to replace Client ID, Secret and Access Code & THE HOST NAME (api.pcloud.com) with what was on the page before https://api.pcloud.com/oauth2_token?client_id=xxxxxxxxx&client_secret=xxxxxxxxx&code=xxxxxxxxx

Copy the access_token and the locationid to the .env

Example

use Rbaskam\LaravelPCloud\App;
use Rbaskam\LaravelPCloud\File;
use Rbaskam\LaravelPCloud\Folder;

protected $pCloudApp;

public function __construct()
{
    $this->pCloudApp = new App();
    $this->pCloudApp->setAccessToken(config('laravel-pcloud.access_token'));
    $this->pCloudApp->setLocationId(config('laravel-pcloud.location_id'));
}

// Create Folder instance

$pcloudFolder = new Folder($this->pCloudApp);

// Create new folder in root

$folderId = $pcloudFolder->create("New folder");

// Create File instance

$pcloudFile = new File($this->pCloudApp);

// Upload new file in created folder

$fileMetadata = $pcloudFile->upload("./sample.png", $folderId);

// Get folder content

$folderContent = $pcloudFolder->getContent($folderId);

// Get file

$pcloudFile = new File($this->pCloudApp);
$pcloudFile->getLink((int)$fileMetadata->metadata->fileid)

Creating custom requests

use Rbaskam\LaravelPCloud\Request;
use Rbaskam\LaravelPCloud\App;

protected $pCloudApp;

public function __construct()
{
    $this->pCloudApp = new App();
    $this->pCloudApp->setAccessToken(config('laravel-pcloud.access_token'));
    $this->pCloudApp->setLocationId(config('laravel-pcloud.location_id'));
}

$method = "userinfo";
$params = array();

$request = new Request($this->pCloudApp);
$response = $request->get($method, $params); // the second argument is optional