2017 © Pedro Peláez
 

library guzzle-toggl

Toggl API client written on top of Guzzle PHP.

image

ajt/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  • Wednesday, June 13, 2018
  • by arendjantetteroo
  • Repository
  • 12 Watchers
  • 63 Stars
  • 7,902 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 29 Forks
  • 2 Open issues
  • 10 Versions
  • 10 % Grown

The README.md

guzzle-toggl

A Toggl API client based on Guzzle PHP, (*1)

Features

  • supports version 9 API with API Key authentication
  • supports Toggl Report Api v2
  • based on guzzle 7

Installation

The library is available through Composer, so it's easy to get it. Simply run this to install it:, (*2)

composer require ajt/guzzle-toggl

Usage

To use the Toggl API Client simply instantiate the client with the api key. More information on the key and authentication available at https://engineering.toggl.com/docs/authentication, (*3)

<?php

require __DIR__.'/../vendor/autoload.php';

use AJT\Toggl\TogglClient;
$toggl_token = ''; // Fill in your token here
$toggl_client = TogglClient::factory(['api_key' => $toggl_token]);

// if you want to see what is happening, add debug => true to the factory call
$toggl_client = TogglClient::factory(['api_key' => $toggl_token, 'debug' => true]); 

Invoke Commands using our __call method (auto-complete phpDocs are included), (*4)

<?php 
use AJT\Toggl\TogglClient;
$toggl_client = TogglClient::factory(['api_key' => $toggl_token]);

$workspaces = $toggl_client->getWorkspaces([]);

foreach($workspaces as $workspace){
    $id = $workspace['id'];
    print $workspace['name'] . "\n";
}

Or Use the getCommand method (in this case you need to work with the $response['data'] array:, (*5)

<?php 
use AJT\Toggl\TogglClient;
$toggl_client = TogglClient::factory(['api_key' => $toggl_token]);

//Retrieve the Command from Guzzle
$command = $toggl_client->getCommand('GetWorkspaces', []);
$command->prepare();

$response = $command->execute();

$workspaces = $response['data'];

foreach($workspaces as $workspace){
    $id = $workspace['id'];
    print $workspace['name'] . "\n";
}

Examples

Copy the apikey-dist.php to apikey.php (in the root directory) and add your apikey. Afterwards you can execute the examples in the examples directory., (*6)

You can look at the services.json for details on what methods are available and what parameters are available to call them, (*7)

Migrating to v9

Almost all the methods retain the same naming, but some parameters have changed., (*8)

The following endpoints now require a workspace_id to be passed in the parameters: - CreateClient - GetClient - UpdateClient - DeleteClient - CreateProject - GetProject - UpdateProject - CreateProjectUser - CreateProjectUsers - UpdateProjectUser - UpdateProjectUsers - DeleteProjectUser - DeleteProjectUsers - CreateTag - UpdateTag - DeleteTag - CreateTask (also requires a project_id) - GetTask (also requires a project_id) - UpdateTask (also requires a project_id) - UpdateTasks (also requires a project_id) - DeleteTask (also requires a project_id) - DeleteTasks (also requires a project_id) - StartTimeEntry - StopTimeEntry - UpdateTimeEntry - DeleteTimeEntry, (*9)

The following endpoints now require a project_id to be passed in the parameters: - CreateTask - GetTask - UpdateTask - UpdateTasks - DeleteTask - DeleteTasks, (*10)

The following endpoints are new: - ArchiveClient - RestoreClient, (*11)

The following endpoints have changed their parameters: - GetProjects (id is now workspace_id, for clarity) - GetProjectUsers no longer accepts a project_id parameter, but instead accepts a workspace_id parameter, (*12)

The following endpoints have had their name changed, to match the toggl docs more closely: - InviteWorkspaceUser -> InviteOrganizationUser, (*13)

The following endpoints have been removed: - GetWorkspaceWorkspaceUsers - GetWorkspaceProjects (use GetProjects instead), (*14)

Todo

  • [ ] Add some more examples
  • [ ] Add tests
  • [ ] Add some Response models

Contributions welcome

Found a bug, open an issue, preferably with the debug output and what you did. Bugfix? Open a Pull Request and I'll look into it., (*15)

Contributors:

Thank you to several contributors over the years to keep this updated with toggl's api versions. See the contributor page for all of them https://github.com/arendjantetteroo/guzzle-toggl/graphs/contributors, (*16)

License

The Toggl API client is available under an MIT License., (*17)

The Versions

13/06 2018
13/09 2016

0.12

0.12.0.0 http://github.com/arendjantetteroo/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  Sources   Download

MIT

The Requires

 

api guzzle ajt toggl

09/08 2016

v0.11

0.11.0.0 http://github.com/arendjantetteroo/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  Sources   Download

MIT

The Requires

 

api guzzle ajt toggl

06/05 2015

0.x-dev

0.9999999.9999999.9999999-dev http://github.com/arendjantetteroo/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  Sources   Download

MIT

The Requires

 

api guzzle ajt toggl

10/03 2015

v0.10

0.10.0.0 http://github.com/arendjantetteroo/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  Sources   Download

MIT

The Requires

 

api guzzle ajt toggl

25/11 2014

v0.9

0.9.0.0 http://github.com/arendjantetteroo/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  Sources   Download

MIT

The Requires

 

api guzzle ajt toggl

11/07 2013

v0.8

0.8.0.0 http://github.com/arendjantetteroo/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

api guzzle ajt toggl

17/04 2013

v0.6

0.6.0.0 http://github.com/arendjantetteroo/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

api guzzle ajt toggl