Download the PHP package sudiptochoudhury/php-time-doctor without Composer
On this page you can find all versions of the php package sudiptochoudhury/php-time-doctor. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sudiptochoudhury/php-time-doctor
More information about sudiptochoudhury/php-time-doctor
Files in sudiptochoudhury/php-time-doctor
Package php-time-doctor
Short Description PHP Client Library to consume Time Doctor API
License MIT
Homepage https://github.com/sudiptochoudhury/php-time-doctor
Informations about the package php-time-doctor
php-time-doctor
PHP API Client for Time Doctor API and nodeJS MCP Server for Time Doctor API.
Read all about Time Doctor API from timedoctor.com
Quick Steps:
STEP 1:
Get TimeDoctor access_token and store it in a file named timedoctor.json in the root of your project. The file should contain the following JSON data:
STEP 2:
run CLI commands
Command 1:
You are likely to see this:
If you are in Linux or MacOS, you can make the file executable by running the following command:
and then run the command as (without php):
Command 2:
You are likely to see this:
Command 3:
You see see User and Company information in JSON format. You can copy the company id for future use.
Command 4:
Get worklogs for a company between two dates. You need to pass company_id, start_date and end_date as parameters.
You are likely to get a JSON response with worklogs for the given company between the given dates. It does not give the total but enough information to calculate the total time etc.
Using MCP Server
Make sure you have setup the CLI having
timedoctor.jsonfile in the root of your project withaccess_tokenas described above.
JSON entry in MCP server JSON configuration file.
For more details on how to setup MCP server, please refer to Time Doctor MCP Server.
Once, the MCP server is setup, you can use the tools in your MCP client.
Example prompts:
If memory is enabled, you can also ask:
then,
Using in PHP
Get TimeDoctor access_token and use it.
Installation
Requirements
- Any flavour of PHP 7.1+ should do
Install With Composer
You can install the library via Composer by adding the following line to the require block of your composer.json file (replace dev-master with the latest stable version):
or run the following command:
Setting up
Authenticate
Below are two OAuth2.0 strategies you can choose when implementing this.
Before this, you need to register your Time Doctor Application as described here, setup
redirect_urland get theclient_id,client_secretfrom the application.
For Web Server based/Desktop/Native applications
Authorization Code Grant flow: This flow is useful if you have your own server for your app (most common for traditional web apps, as well as native desktop and mobile apps).
Step 1 - Get Code
This will open authentication portal of your Time Doctor Application and on successful authentication redirect to the
given redirect_url (an url of your main application) (provided that this url is registered in your Time Doctor Application) with a code in it's querystring.
Your site's code should collect and store this code for the next step.
Step 2 - Generate access_token
You will receive a set of values similar to the one give below:
Store the access_token and refresh_token for future use.
access_token will be required in all Time Doctor API calls, while
refresh_token will be needed to re-generate access token on expiration.
access_token has a limited life span as shown by expires_in (in seconds) property of the received data. The expires_in shown in the example data above calculated to 5 days.
The step below shows how to re-generate access_token on expiration.
Retrieve access_token on expiration using Refresh Token
For Web Server-less applications
Implicit Grant flow: Useful when you don't have your own server for your app (suitable for in-browser web apps, such as single-site apps written in JavaScript that cannot make arbitrary GET requests to our public API).
Use
All you need to do is to pass TimeDoctor access_token to the constructor.
Additionally, you can set a logger via log property.
- You can set log to
falseto disable logging. -
You can also pass an array with
fileandpathproperties. - You can also pass a
Monolog\Loggerinstance.
You can use client property to forward to GuzzleHttp\Client constructor.
If you wish to tap into request and response handler stacks use settings instead of using client's handlers property.
How to use
Next, call the desired method from the table given below. In most methods you may need to pass parameters. The parameters are to be passed as an associative array.
Examples:
Available API Methods
| Method | Parameters | Description |
|---|---|---|
getCompanies(array = []) |
Returns the user's account(s) | |
getProjects(array) |
offset limit all | Returns a collection of a user's projects |
getUsers(array) |
company_id emails include_manager | Returns a collection of the company's users |
getUser(array) |
company_id, user_id | Returns info about a user |
getUserTasks(array) |
company_id user_id offset limit status latest_first | Returns a collection of a user's tasks |
getUserTask(array) |
company_id user_id task_id | Returns info about a user's task |
getWorklogs(array) |
company_id start_date end_date offset limit user_ids project_ids task_ids fields breaks_only consolidated last_modified | Returns a collection of all user's worklogs under the given company Id |
Available OAuth API Methods
| Method | Parameters | Description |
|---|---|---|
getAuthCode(array) |
||
getToken(array) |
||
refreshToken(array) |
||
getAuthToken(array) |
All versions of php-time-doctor with dependencies
sudiptochoudhury/php-api-client-forge Version *
sudiptochoudhury/php-cli Version *
psr/log Version ^1.1