ajt/guzzle-toggl

基于Guzzle PHP编写的Toggl API客户端。

v2.1.0 2024-09-04 15:20 UTC

This package is auto-updated.

Last update: 2024-09-04 15:22:19 UTC


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(现在idworkspace_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许可证下可用。