justijndepover/teamleader-api

Teamleader API的PHP客户端

0.8.0 2024-04-11 08:03 UTC

This package is auto-updated.

Last update: 2024-09-11 08:59:06 UTC


README

Latest Version on Packagist Software License Total Downloads

Teamleader API的PHP客户端

Logo

注意

此应用程序仍在开发中,可能会实施破坏性变更。请自行承担风险。

安装

您可以使用composer安装此包

composer require justijndepover/teamleader-api

在Laravel中安装包

要在Laravel应用程序中使用此插件,请参阅Laravel使用页面

用法

连接到Teamleader

// note the state param: this can be a random string. It's used as an extra layer of protection. Teamleader will return this value when connecting.
$teamleader = new Teamleader(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI, STATE);
// open the teamleader login
header("Location: {$teamleader->redirectForAuthorizationUrl()}");
exit;

连接后,Teamleader将向您的重定向URI发送请求。

$teamleader = new Teamleader(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI, STATE);

if ($_GET['error']) {
    // your application should handle this error
}

if ($_GET['state'] != $teamleader->getState()) {
    // state value does not match, your application should handle this error
}

$teamleader->setAuthorizationCode($_GET['code']);
$teamleader->connect();

// store these values:
$accessToken = $teamleader->getAccessToken();
$refreshToken = $teamleader->getRefreshToken();
$expiresAt = $teamleader->getTokenExpiresAt();

您的应用程序现在已连接。要开始获取数据

$teamleader = new Teamleader(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI, STATE);
$teamleader->setAccessToken($accessToken);
$teamleader->setRefreshToken($refreshToken);
$teamleader->setTokenExpiresAt($expiresAt);

// fetch data:
$teamleader->crm->get();

// you should always store your tokens at the end of a call
$accessToken = $teamleader->getAccessToken();
$refreshToken = $teamleader->getRefreshToken();
$expiresAt = $teamleader->getTokenExpiresAt();

可用方法

请注意,您的应用程序应在集成中启用正确的权限。

此应用程序处于早期开发阶段。因此,并非所有资源都作为props可用。(例如:$teamleader->users->me)。在此期间,您可以通过getpost方法获取所有可用的资源。

$teamleader->get('users.me');
$teamleader->get('departments.list');
$teamleader->get('departments.info', ['id' => $id]);
$teamleader->post('contacts.add', [
    // all the data
]);

速率限制

每次请求后,都将提供速率限制头信息。

// returns the maximum rate limit your application can hit in 1 minute
$teamleader->getRateLimitLimit();

// returns the current limit remaining
$teamleader->getRateLimitRemaining();

// returns the datetime (UTC) when your application can make calls again, after hitting the rate limit.
$teamleader->getRateLimitReset();

您如何处理速率限制取决于您。但应用程序提供了一个辅助方法,以确保您永远不会达到限制。

$teamleader->get('contacts.info', ['id' => $id]);
// executing this function will sleep until the X-RateLimitReset header has passed, but only if the rate limit is hit.
$teamleader->ensureRateLimitingIsNotExceeded();

安全

如果您发现任何安全相关的问题,请打开问题或直接联系我justijndepover@gmail.com

贡献

如果您希望对包进行任何更改或改进,请随时提交pull request。

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。