eduard9969 / clickup-php
Fork ClickUp API客户端(非官方)
v1.1.3
2022-03-25 13:35 UTC
Requires
- php: >=7.2
- caseyamcl/guzzle_retry_middleware: ^2.3
- guzzlehttp/guzzle: ^6.3|^7.3
Requires (Dev)
- ergebnis/composer-normalize: ^2.15
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^0.12
- psy/psysh: ^v0.10.8
This package is auto-updated.
Last update: 2024-09-25 19:15:05 UTC
README
从原始仓库clickup-php分支 | 作者:howyi
ClickUp API(v1-BETA)的简单封装。
分支差异
目录
安装
composer require eduard9969/clickup-php
该包处于开发状态。我不想在https://packagist.org.cn/上添加另一个分支的副本
此外,您还可以通过在您的composer.json中使用VSC来安装此包。添加以下代码
"repositories": [
{
"type": "vcs",
"url": "https://github.com/Eduard9969/clickup-php.git"
}
]
使用
生成客户端
// create Option (required: API_TOKEN) $options = new ClickUp\Options('API_TOKEN'); // create Client (required: ClickUp\Options) $client = new ClickUp\Client($options);
获取
// me $client->user(); // -> \ClickUp\Objects\User // all affiliated teams $client->teams()->objects(); // -> \ClickUp\Objects\Team[] // team by team id $team = $client->team($teamId); // team by name $team = $client->teams()->getByName('team_name'); // -> \ClickUp\Objects\Team // spaces in team $team->spaces()->objects(); // -> \ClickUp\Objects\Space[] // space by space id $space = $team->space(888); // space by name $space = $team->spaces()->getByName('spaaaaace'); // -> \ClickUp\Objects\Space // folders in space $space->folders()->objects(); // -> \ClickUp\Objects\Folder[] // folder by folder id $folder = $space->folder(11111); // folder by name $folder = $space->folders()->getByName('super cool folder'); // -> \ClickUp\Objects\Folder // lists in folder $folder->taskLists()->objects(); // -> \ClickUp\Objects\TaskList[] // list by list id $taskList = $folder->taskList(9999); // list by name $taskList = $folder->taskLists()->getByName('T A S K L I S T'); // -> \ClickUp\Objects\TaskList // tasks by list // @see https://jsapi.apiary.io/apis/clickup20/reference/0/lists/update-list.html $tasks = $taskList->tasks()->objects(); // -> \ClickUp\Objects\Task[] // task by task id $task = $taskList->task(3333); // -> \ClickUp\Objects\Task // all tasks with chunks // tasksChunk get all tasks from the API and execute callback function (arg: $tasks->objects()) $allTasks = []; $team->tasksChunk(false, false, function($tasks) use (&$allTasks) { $allTasks = array_merge($tasks, $allTasks); // return false; // break loop }); // -> true \ false
您可以在任何级别使用tasks
和task
方法($team->tasks(); $space->tasks(); $folder->tasks();等等
)。但请记住,100是响应中的最大项目数(对于chunk方法不适用),我建议细化搜索区域。
创建
/** * create task list in folder * @see https://jsapi.apiary.io/apis/clickup20/reference/0/lists/create-list.html * @see https://jsapi.apiary.io/apis/clickup20/reference/0/lists/create-folderless-list.html */ $folder->createTaskList(['name' => 'newTaskList']); /** * create task in list * @see https://jsapi.apiary.io/apis/clickup20/reference/0/tasks/create-task.html */ $taskList->createTask(['name' => 'my second task']);
更新
/** * update task list * @see https://jsapi.apiary.io/apis/clickup20/reference/0/lists/update-list.html */ $taskList->edit(['name' => 'renamed task list']); /** * update task * @see https://jsapi.apiary.io/apis/clickup20/reference/0/lists/update-list.html */ $task->edit(['name' => 'renamed task']);
存储
默认情况下,当达到速率限制时,重试通过Memory::Class
执行。您可以使用其他存储(实现StateStorage
接口)并使用自定义时间延迟(实现TimeDeferrer
接口)。
// create Option (required: API_TOKEN) $options = new ClickUp\Options('API_TOKEN'); // create StoreOptions (optional: StateStorage, StateStorage, TimeDeferrer) $storeOptions = new ClickUp\StoreOptions($redisTStorage, $redisLStorage, $timeDeferrer); // create Client (required: ClickUp\Options, optional: ClickUp\StoreOptions) $client = new ClickUp\Client($options, $storeOptions);
LICENSE
本项目遵循MIT许可证。