namelivia/travelperk-http-php

PHP SDK for accessing the TravelPerk API


README

TravelPerk PHP SDK

About

This is an unofficial package for acessing the TravelPerk official Web API from your PHP language project. It is designed so you can easily query and retrieve all data hold on their platform and accessible through the API.

Installation

Require this package, with Composer, in the root directory of your project.

$ composer require namelivia/travelperk-http-php:~1.4.0

Getting started

Before getting started retrieving querying information from the TravelPerk Web API you first need to get an API Key.

Getting a TravelPerk instance

For querying the data you need to get a TravelPerk instance, here are two ways to get a TravelPerk API instance depending on how you authenticate with their API.

At TravelPerk there are two ways to authenticate, using an API Key or OAuth2.

For API Key Authentication

If you have an API Key for authenticating you need to call the Service Provider's build method passing your api key, and a boolean indicating if you will be using the sandbox environment or not like this:

use Namelivia\TravelPerk\ServiceProvider;
$isSandbox = false;
$travelperk = (new ServiceProvider())->build('your-api-key', $isSandbox);

For OAuth Authentication

If you want to use OAuth for authenticating you need to call the Service Provider's buildOAuth2 method passing your desired access token peristence method, your oauth credentials, an array of scopes your application will be accessing to, and a boolean indicating if you will be using the sandbox environment or not like this:

use Namelivia\TravelPerk\ServiceProvider;
$isSandbox = false;
$travelperk = (new ServiceProvider())->buildOAuth2(
  'your-client-id',
  'your-client-secret',
  'http://your-app/redirect-url',
  ['expenses:read', 'scim:read'],
  $isSandbox
);

Retrieving data

Everything is ready, you can start asking for the data.

$travelperk->expenses()->invoices()->all();

For further information refer to the documentation linked in the next section.

Documentation

The full documentation can be found in the wiki section of this github repository. Also you can refer to the official TravelPerk Web API documentation

License

MIT

Contributing

Any suggestion, bug reports, prs or any other kind enhacements are welcome. Just open an issue first, for creating a PR remember this project has linting checkings and unit tests so any PR should comply with both before beign merged, this checks will be automatically applied when opening or modifying the PRs.

Local development

This project comes with a docker-compose.yml file so if you use Docker and docker-compose you can develop without installing anything on your local environment. Just run docker-compose up --build for the first time to setup the container and launch the tests. PHPUnit is configured as the entrypoint so just run docker-compose up everytime you want the tests to execute on the Dockerized PHP development container.