Code Monkey home page Code Monkey logo

laravelpcloud's Introduction

pCloud SDK for Laravel

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

laravelpcloud's People

Contributors

rbaskam avatar

Stargazers

Jose Rosado avatar Michael Laweh avatar  avatar akachai pijan avatar

Watchers

James Cloos avatar  avatar Dean Collins avatar

Forkers

aka1526 oliuz

laravelpcloud's Issues

Why does the upload function replaces underlines in the path, and so also in the filename?

Hey everyone,

like in the title, not really an issue, more a question. Why does the upload function in LaravelPCloud/src/File.php replaces underlines in the path, and with this it replaces also the underlines in the filename?

This is the part the I quite don't understand:
$path = str_replace(array("\", "_"), "/", $path);

Because of this, if I add a file with the name test_test.pdf for example, it will replaces the underline with slash, which results in an error, when I try to search for the file.

Thanks in advance for clarification

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.