2017 © Pedro Peláez
 

library bexio-api-php-client

Client library for bexio API

image

christianruhstaller/bexio-api-php-client

Client library for bexio API

  • Thursday, March 15, 2018
  • by christianruhstaller
  • Repository
  • 2 Watchers
  • 1 Stars
  • 121 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 3 Versions
  • 10 % Grown

The README.md

bexio API PHP Client

The bexio API Client Library enables you to work with the bexio API. This is an early version and is still in development., (*1)

See the bexio API documentation for more information how to use the API., (*2)

Installation

You can use Composer or download the library., (*3)

Require this package with composer:, (*4)

composer require christianruhstaller/bexio-api-php-client

Include the autoloader:, (*5)

require_once '/path/to/your-project/vendor/autoload.php';

Examples

Get access token, (*6)

require_once '../vendor/autoload.php';

$clientId = 'CLIENT_ID'; // The client id of your app
$clientSecret = 'CLIENT_SECRET'; // The client secret of your app
$redirectUri = 'http://localhost/bexio-api-php-client.php'; // Set here your Url where this script gets called
$scope = 'openid offline_access'; // A whitespace-separated list of scopes (see https://docs.bexio.com/#section/Authentication/API-Scopes).
$state = '8OTs2JTDcWDaPqV7o9aHVWqM'; // A random sequence. Should be used as a protection against CSRF-Attacks
$credentialsPath = 'client_credentials.json'; // Set the path where the credentials file will be stored

$client = new \Bexio\Client(
    [
        'clientId'     => $clientId,
        'clientSecret' => $clientSecret,
    ]
);
$client->setRedirectUri($redirectUri);

// If code is not set we need to get the authentication code
if (!isset($_GET['code'])) {
    $redirectTo = \Bexio\Client::OAUTH2_AUTH_URL.'?'.http_build_query(
            [
                'response_type' => 'code',
                'client_id'     => $clientId,
                'redirect_uri'  => $redirectUri,
                'scope'         => $scope,
                'state'         => $state,
            ]
        );

    header('Location: '.$redirectTo);
    exit;
} else {
    $accessToken = $client->fetchAccessTokenWithAuthCode($_GET['code']);
    file_put_contents($credentialsFile, json_encode($accessToken));
    exit;
}

Init client, (*7)

    require_once '../vendor/autoload.php';

    $client = new \Bexio\Client([
        'clientId' => 'CLIENT_ID',
        'clientSecret' => 'CLIENT_SECRET',
    ]);

    $credentialsPath = 'PATH_TO_CREDENTIAL_FILE';

    if (!file_exists($credentialsPath)) {
        throw new \Exception('Credentials file not found for OAuth: '.$credentialsPath);
    }

    $accessToken = file_get_contents($credentialsPath);
    $client->setAccessToken($accessToken);

    if ($client->isAccessTokenExpired()) {
        $client->refreshToken($client->getRefreshToken());
        file_put_contents($credentialsPath, $client->getAccessToken());
    }

Get contacts, (*8)

    $bexio = new \Bexio\Resource\Contact($client);

    $contacts = $bexio->getContacts();

The Versions

15/03 2018

dev-master

9999999-dev

Client library for bexio API

  Sources   Download

MIT

The Requires

 

by Christian Ruhstaller

29/01 2018

dev-develop

dev-develop

Client library for bexio API

  Sources   Download

MIT

The Requires

 

by Christian Ruhstaller

31/08 2017

0.1.0

0.1.0.0

Client library for bexio API

  Sources   Download

MIT

The Requires

 

by Christian Ruhstaller