jolicode / harvest-php-api
An up to date PHP client for Harvest's API
Installs: 25 176
Dependents: 0
Suggesters: 0
Security: 0
Stars: 22
Watchers: 14
Forks: 6
Open Issues: 0
Requires
- php: >=8.1
- jane-php/open-api-runtime: ^7.6
- php-http/client-common: ^1.9 || ^2.0
- php-http/client-implementation: *
Requires (Dev)
- jane-php/open-api-3: ^7.6
- nyholm/psr7: ^1.6
- symfony/http-client: ^6.4 || ^7.0
- symfony/phpunit-bridge: ^6.4 || ^7.0
README
Harvest is a time tracking and invoicing tool.
This PHP SDK is generated automatically with JanePHP using a Harvest OpenAPI specification generated from the HTML documentation. It means that:
- all the API endpoints and parameters are supported. See the list of available endpoints;
- when the documentation changes, it is easy to update the library and keep up-to-date.
The API is tested against the examples provided by the Harvest API documentation.
Installation
This library is built atop of PSR-7 and PSR-18. So you will need to install some implementations for those interfaces.
If no PSR-18 client or PSR-7 message factory is available yet in your project or you don't know or don't care which one to use, just install some default:
composer require symfony/http-client nyholm/psr7
You can now install the Harvest client:
composer require jolicode/harvest-php-api
Usage
First, you need to retrieve an access token. Please checkout Harvest's documentation about the OAuth2 Authorization Flow.
Then, use the factory that is provided to create the client:
// $harvestClient contains all the methods to interact with the API $harvestClient = JoliCode\Harvest\ClientFactory::create( $accessToken, $harvestAccountId ); $clients = $harvestClient->listClients([ 'is_active' => true, ])->getClients(); dump($clients);
Want more example or documentation? See the documentation, which lists all the available methods.
Troubleshoot
Got some problems using this library? Need a missing feature? Do not hesitate to open an issue and share it with us.
Further documentation
You can see the current and past versions using one of the following:
- the
git tag
command - the releases page on Github
- the file listing the changes between versions
And finally some meta documentation:
License
This library is licensed under the MIT License - see the LICENSE file for details.