2017 © Pedro Peláez
 

library booxtreamclient

A simple example client for the BooXtream webservice

image

icontact/booxtreamclient

A simple example client for the BooXtream webservice

  • Wednesday, January 13, 2016
  • by OmeBlues
  • Repository
  • 5 Watchers
  • 3 Stars
  • 237 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 9 Versions
  • 4 % Grown

The README.md

BooXtreamClient

A client class in PHP for use with the BooXtream webservice., (*1)

  • Has the ability to upload an epub file to the BooXtream webservice
  • Alternatively specify an epub file stored on the BooXtream storage servers
  • Can return an epub file, a (converted) mobi file or an xml containing one or more downloadlinks

Installing via Composer

BooXtreamClient is available in Packagist, just add it to your composer.json, (*2)

composer require icontact/booxtreamclient

or, (*3)

{
    "require": {
        "icontact/booxtreamclient": "~2.0"
    }
}

Alternatively you can just download the package and run composer install to get the requirements., (*4)

The only requirements at the moment are PHP 7.2.5 and up and Guzzle., (*5)

If you do not wish to use Composer you will need to fulfill the dependencies on your own., (*6)

Usage

You will need: - a username and API key for the service - an array of options (refer to the BooXtream web service API documentation) - an epub file or a file stored on the BooXtream service, (*7)

The type parameter can be either 'epub', 'mobi' or 'xml'. In the first two cases a file will be returned by the service, in the case of 'xml' you will receive one or two downloadlinks, depending on your settings (aka delivery platform)., (*8)

require('vendor/autoload.php');

use \Icontact\BooXtreamClient\BooXtreamClient;
use \Icontact\BooXtreamClient\Options;
use \GuzzleHttp\Client;

// a guzzle client
$guzzle = new Client();

// an options object, refer to the documentation for more information on the options
$options = new Options([
    'customername' => 'Foo Bar',
    'referenceid' => 'bazdibzimgir12345',
    'languagecode' => 1033
]);

// create the BooXtream Client
$type = 'xml'; // returns downloadlinks
$credentials = ['username', 'apikey']; // you will need a username and an API key
$BooXtream = new BooXtreamClient($type, $options, $credentials, $guzzle);

We're now going to send the request., (*9)

// add a file location to the epub file you want to watermark
$BooXtream->setEpubFile('/path/to/your/file.epub');

// and send
$Response = $BooXtream->send();

A request with a stored file is slightly different. Instead of adding an epubfile you just need to provide the name of the file (with or without .epub extension):, (*10)

$BooXtream->setStoredEpubFile('filename');

Options

The available options are as follows. Refer to the API Documentation for details:, (*11)

required:

  • customername (string)
  • customeremailaddress (string)
  • referenceid (string)
  • languagecode (int)

additionaly required if using xml (aka delivery platform):

  • expirydays (int)
  • downloadlimit (int)

optional:

  • exlibrisfont (string), this should contain either 'sans', 'serif' or 'script'
  • exlibris (bool), default: false
  • chapterfooter (bool), default: false
  • disclaimer (bool), default: false
  • showdate (bool), default: false

optional if using xml (aka delivery platform):

  • epub (bool), default: true
  • kf8mobi (bool), default: false

custom ex libris

It is also possible to set a custom ex libris file according to the specifications in the API Documentation., (*12)

$BooXtream->setExlibrisFile('filename');

Response

The BooXtreamClient returns an object of the type of GuzzleHttp\Psr7\Response, (*13)

The response always contains a statuscode ($Response->getStatusCode();). If the request was successful this will be 200. Any other status code is an error and will throw an Exception of the type of GuzzleHttp\Exception\ClientException. You can retrieve a Response object as follows:, (*14)

try {
  $Response = $BooXtream->send();
} catch (ClientException $e) {
  $Response = $e->getResponse();
}

Check the HTTP Reason ($Response->getReasonPhrase();) for more information., (*15)

Epub/Mobi

If you requested an epub or mobi file this can be accessed by reading the body ($Response->getBody();). The body is a stream, refer to the PHP Documentation for more information on how to access it. Furthermore you can access the file's content-type with $Response->getHeader('content-type');., (*16)

XML or error

If you requested xml (aka delivery platform) or if an error occurred more information can be found by accessing the body ($Response->getBody();). The body is a stream, refer to the PHP Documentation for more information on how to access it., (*17)

The XML looks like this: - Request, containing information about the request you made (options, etc) - Response, containing either a set of downloadlinks or more information on an error, (*18)

The Versions

13/01 2016

dev-master

9999999-dev https://github.com/BooXtream/php-BooXtreamClient/

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

The Development Requires

by Kevin de Harde

08/01 2016

v1.0.0

1.0.0.0 https://github.com/BooXtream/php-BooXtreamClient/

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

The Development Requires

by Kevin de Harde

06/01 2016

v0.8.0

0.8.0.0 https://github.com/BooXtream/php-BooXtreamClient/

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

by Kevin de Harde

25/02 2015

v0.8

0.8.0.0 https://github.com/BooXtream/php-BooXtreamClient/

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

by Kevin de Harde

01/12 2014

v0.7.1

0.7.1.0 https://github.com/BooXtream/php-BooXtreamClient/

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

by Kevin de Harde

28/11 2014

v0.7.0

0.7.0.0 https://github.com/BooXtream/php-BooXtreamClient/

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

by Kevin de Harde

27/11 2014

v0.6.1

0.6.1.0

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

by Kevin de Harde

27/11 2014

v0.6

0.6.0.0

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

by Kevin de Harde

26/11 2014

0.5

0.5.0.0

A simple example client for the BooXtream webservice

  Sources   Download

MIT

The Requires

 

by Kevin de Harde