ajt / guzzle-toggl
基于Guzzle PHP编写的Toggl API客户端。
v2.1.0
2024-09-04 15:20 UTC
Requires
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/guzzle-services: ^1.2
- inveniem/guzzle-description-loader: v1.0.0
README
基于Guzzle PHP的Toggl API客户端
特性
- 支持版本9 API,使用API密钥进行认证
- 支持Toggl Report Api v2
- 基于guzzle 7
安装
此库通过Composer提供,因此获取它很容易。只需运行以下命令即可安装:
composer require ajt/guzzle-toggl
用法
要使用Toggl API客户端,只需使用API密钥实例化客户端。有关密钥和认证的更多信息,请参阅https://engineering.toggl.com/docs/authentication
<?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]);
使用我们的__call
方法调用命令(包括自动完成phpDocs)
<?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"; }
或使用getCommand
方法(在这种情况下,您需要处理$response['data']数组)
<?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"; }
示例
将apikey-dist.php复制到apikey.php(在根目录中),并添加您的API密钥。之后,您可以在examples目录中执行示例。
您可以通过services.json了解可用的方法和调用它们所需的参数。
迁移到v9
几乎所有的方法都保留了相同的命名,但一些参数已更改。
以下端点现在需要在参数中传递workspace_id
:
- CreateClient
- GetClient
- UpdateClient
- DeleteClient
- CreateProject
- GetProject
- UpdateProject
- CreateProjectUser
- CreateProjectUsers
- UpdateProjectUser
- UpdateProjectUsers
- DeleteProjectUser
- DeleteProjectUsers
- CreateTag
- UpdateTag
- DeleteTag
- CreateTask(也要求提供一个
project_id
) - GetTask(也要求提供一个
project_id
) - UpdateTask(也要求提供一个
project_id
) - UpdateTasks(也要求提供一个
project_id
) - DeleteTask(也要求提供一个
project_id
) - DeleteTasks(也要求提供一个
project_id
) - StartTimeEntry
- StopTimeEntry
- UpdateTimeEntry
- DeleteTimeEntry
以下端点现在需要在参数中传递project_id
:
- CreateTask
- GetTask
- UpdateTask
- UpdateTasks
- DeleteTask
- DeleteTasks
以下端点是新的:
- ArchiveClient
- RestoreClient
以下端点的参数已更改:
- GetProjects(现在
id
是workspace_id
,以增加清晰度) - GetProjectUsers不再接受
project_id
参数,而是接受一个workspace_id
参数
以下端点的名称已更改,以更接近toggl文档:
- InviteWorkspaceUser -> InviteOrganizationUser
以下端点已被删除:
- GetWorkspaceWorkspaceUsers
- GetWorkspaceProjects(请使用GetProjects代替)
待办事项
- 添加更多示例
- 添加测试
- 添加一些Response模型
欢迎贡献
发现了错误,请打开问题,最好附带调试输出以及您所做操作。修复错误?请打开一个Pull Request,我会查看。
贡献者
感谢多年来许多贡献者使此项目保持与Toggl的API版本更新。请参阅贡献者页面了解所有人https://github.com/arendjantetteroo/guzzle-toggl/graphs/contributors
许可证
Toggl API客户端在MIT许可证下可用。