justijndepover / teamleader-api
Teamleader API的PHP客户端
0.8.0
2024-04-11 08:03 UTC
Requires
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- justijndepover/php-check: ^0.12.0
- orchestra/testbench: ^6.4
README
Teamleader API的PHP客户端
注意
此应用程序仍在开发中,可能会实施破坏性变更。请自行承担风险。
安装
您可以使用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
)。在此期间,您可以通过get
和post
方法获取所有可用的资源。
$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)。请参阅许可证文件以获取更多信息。