PHPackages                             yireo/producteev-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. yireo/producteev-client

AbandonedLibrary[API Development](/categories/api)

yireo/producteev-client
=======================

PHP client for Producteev

0.0.1(9y ago)11.5k[1 PRs](https://github.com/yireo/producteev-client/pulls)GPL-3.0PHPPHP &gt;=5.6.0

Since Dec 16Pushed 3y ago1 watchersCompare

[ Source](https://github.com/yireo/producteev-client)[ Packagist](https://packagist.org/packages/yireo/producteev-client)[ Docs](https://github.com/yireo/producteev-client)[ RSS](/packages/yireo-producteev-client/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

Producteev Client
=================

[](#producteev-client)

*PHP client for the [Producteev](https://www.producteev.com/) API.*

This PHP client makes use of the Producteev API, authenticating using OAuth2 and depends on Guzzle.

Status
------

[](#status)

Beta (aka *it might be ready for production*). This API client is used by ourselves to integrate various other systems with Producteev, for instance to create complete projects (including tasks and subtasks) through batch-scripts.

This package is also listed on Packagist:

Installation
------------

[](#installation)

This client is installed via composer:

```
composer config repositories.yireo-producteev vcs git@github.com:yireo/producteev-client.git
composer require yireo/producteev-client:dev-master

```

Usage
-----

[](#usage)

First of all, see the documentation of Producteev on the usage of their API:

Read their instructions on how to create a new app. Write down the client ID and client secret of this app. In the example below these are the `$clientId` and `$clientSecret` variables.

Now, setup a webpage, add the code below, and access it. In the example, the URL will be `http://example.com`:

```
// Include all composer packages
require __DIR__ . '/vendor/autoload.php';

// Initialize the client with its ID and secret
$client = new \Yireo\ProducteevClient\Client($clientId, $clientSecret);

// Retrieve a current access token from cookie, if there
$client->retrieveAccessTokenFromCookie();

// Set the redirect URL
$redirectUrl = 'http://example.com/';
$client->setRedirectUrl($redirectUrl);

// When authenticating via OAuth2, Producteev will redirect back to us with a "code" set
if (!empty($_REQUEST['code'])) {
    $client->setAuthenticationCode($_REQUEST['code']);
    $client->retrieveAccessTokenToCookie();

    // Redirect to our same page again, removing the "code" part
    header('Location: ' . $redirectUrl);
    exit;
}

// When there is no valid access token, this will initiate OAuth2 authentication including a redirect to the Producteev webpage
if($client->isAccessTokenValid() === false) {
    $client->authenticate();
}

// Example call
echo '';
print_r($client->getResource('users')->me());
echo '';
```

### Cookies

[](#cookies)

The access token is in this code sample stored in a cookie in the browser. Alternative storage can be used if you prefer.

### API calls

[](#api-calls)

The following calls have been made accessible so far:

Show all available networks:

```
$networks = $client->getResource('networks')->items();
```

Get current user:

```
$me = $client->getResource('users')->me();
```

Search for specific user:

```
$exampleUser = $client->getResource('users')->findByEmail('info@example.com');
```

Get the default project of the current user:

```
$defaultProject = $client->getResource('users')->getMyDefaultProject();
```

Create a project

```
$projectData = ['title' => 'Test Project', 'description' => 'Test description'];
$projectId = $client->getResource('projects')->create($projectData);
```

Create a task for an existing project, set the deadline to tomorrow, add some subtasks, assign the task to `$exampleUser` and remove the current user from the task:

```
$taskDeadline = date('c', strtotime('tomorrow'));
$taskSubtasks = [['title' => 'Some subtask', 'status' => 1], ['title' => 'Another subtask', 'status' => 1]];
$taskData = ['title' => 'Test task', 'deadline' => $taskDeadline, 'subtasks' => $taskSubtasks, 'responsibles' => [$exampleUser], 'project' => ['id' => $projectId]];
$taskId = $client->getResource('tasks')->create($taskData);
$client->getResource('tasks')->removeResponsible($taskId, $me);
```

List all projects:

```
$projects = $client->getResource('projects')->items();
```

Search for projects with the word "office" in their title:

```
$projects = $client->getResource('projects')->search('office);
```

###  Health Score

26

—

LowBetter than 40% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3528d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1373981?v=4)[Yireo](/maintainers/yireo)[@yireo](https://github.com/yireo)

---

Top Contributors

[![jissereitsma](https://avatars.githubusercontent.com/u/7670482?v=4)](https://github.com/jissereitsma "jissereitsma (18 commits)")

### Embed Badge

![Health badge](/badges/yireo-producteev-client/health.svg)

```
[![Health](https://phpackages.com/badges/yireo-producteev-client/health.svg)](https://phpackages.com/packages/yireo-producteev-client)
```

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3661.3M49](/packages/tencentcloud-tencentcloud-sdk-php)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

353.6k](/packages/eslazarev-wildberries-sdk)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k832.6k52](/packages/neuron-core-neuron-ai)[avalara/avataxclient

Client library for Avalara's AvaTax suite of business tax calculation and processing services. Uses the REST v2 API.

528.7M7](/packages/avalara-avataxclient)[files.com/files-php-sdk

Files.com PHP SDK

2482.9k](/packages/filescom-files-php-sdk)[volcengine/volcengine-php-sdk

119.5k](/packages/volcengine-volcengine-php-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
