madeitbelgium / teamleader
Laravel TeamLeader SDK
1.11.0
2023-08-08 08:59 UTC
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^6.5|7.*
- illuminate/container: *
- illuminate/support: *
- nesbot/carbon: ^1.35|^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: 2.*
- mockery/mockery: 0.9
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: 7.*|6.*|8.*
README
使用此Laravel包,您可以为TeamLeader创建集成。
安装
composer require madeitbelgium/teamleader
或者在您的composer.json
中要求此包并更新composer。
"madeitbelgium/teamleader": "^1.8"
发布配置文件
php artisan vendor:publish --provider="MadeITBelgium\TeamLeader\ServiceProvider\TeamLeader"
Laravel <5.5
更新composer后,将ServiceProvider添加到config/app.php
中的providers数组中
MadeITBelgium\TeamLeader\ServiceProvider\TeamLeader::class,
您可以使用外观来缩短代码。将以下内容添加到您的别名中
'TeamLeader' => MadeITBelgium\TeamLeader\Facade\TeamLeader::class,
文档
用法
use MadeITBelgium\TeamLeader\TeamLeader; $teamLeader = new TeamLeader($appUrl, $clientId, $clientSecret, $redirectUri, $client = null);
在laravel中,您可以使用外观
use MadeITBelgium\TeamLeader\Facade\TeamLeader; $teamLeaderContact = TeamLeader::crm()->contact()->add([ 'first_name' => 'Tjebbe', 'last_name' => 'Lievens', 'emails' => [ [ 'type' => 'primary', 'email' => 'info@madeit.be', ] ], 'telephones' => [ ['type' => 'mobile', 'number' => '0000000000'], ], 'addresses' => [ [ 'type' => 'primary', 'address' => [ 'line_1' => 'Adres 1', 'postal_code' => '1234', 'city' => 'Cityname', 'country' => 'BE', ] ] ], 'language' => "nl", ]); $contactId = $teamLeaderContact->data->id;
认证
创建重定向URL并将用户重定向到TeamLeader URL。
TeamLeader::setRedirectUrl($redirect_url); $redirectTo = TeamLeader::getAuthorizationUrl();
当用户成功认证后,用户将被重定向到提供的重定向URL。现在您可以请求(并保存)访问和刷新令牌。
$accessTokenResult = TeamLeader::requestAccessToken($request->get('code')); $access_token = TeamLeader::getAccessToken(); $refresh_token = TeamLeader::getRefreshToken(); $expired_at = TeamLeader::getExpiresAt();
访问令牌有短暂的过期时间。在每次请求之前检查访问令牌是否仍然有效。
TeamLeader::setAccessToken($access_token); TeamLeader::setRefreshToken($refresh_token); TeamLeader::setExpiresAt($expired_at); $refresh = TeamLeader::checkAndDoRefresh(); if (false !== $refresh) { $access_token = TeamLeader::getAccessToken(); $refresh_token = TeamLeader::getRefreshToken(); $expired_at = TeamLeader::getExpiresAt(); //Save data to database }
所有可用端点
需要更多端点?创建问题或联系我们。
TeamLeader::setRedirectUrl($redirect_url); TeamLeader::getAuthorizationUrl(); TeamLeader::requestAccessToken($code); TeamLeader::getAccessToken(); TeamLeader::getRefreshToken(); TeamLeader::getExpiresAt(); TeamLeader::setAccessToken($access_token); TeamLeader::setRefreshToken($refresh_token); TeamLeader::setExpiresAt($expired_at); TeamLeader::checkAndDoRefresh(); TeamLeader::general()->department()->list() TeamLeader::general()->department()->info($id) TeamLeader::general()->user()->me() TeamLeader::general()->user()->list() TeamLeader::general()->user()->info($id) TeamLeader::general()->team()->list() TeamLeader::general()->customField()->list() TeamLeader::general()->customField()->info($id) TeamLeader::general()->workType()->list() TeamLeader::crm()->contact()->list(['filter' => ..., 'page' => ..., 'sort' => ...]); //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.list TeamLeader::crm()->contact()->info($id); //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.info TeamLeader::crm()->contact()->add(['first_name' => ..., ...]); //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.add TeamLeader::crm()->contact()->update($id, ['first_name' => ...]) //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.update TeamLeader::crm()->contact()->delete($id); //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.delete TeamLeader::crm()->contact()->tag($id, $tags); //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.tag TeamLeader::crm()->contact()->untag($id, $tags); //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.untag TeamLeader::crm()->contact()->linkToCompany($id, $companyId, $position, $decisionMaker) //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.linktocompany TeamLeader::crm()->contact()->unlinkToCompany($id, $companyId); //https://developer.focus.teamleader.eu/#/reference/crm/contacts/contacts.unlinkfromcompany TeamLeader::crm()->company()->list(['filter' => ..., 'page' => ..., 'sort' => ...]); //https://developer.focus.teamleader.eu/#/reference/crm/companies/companies.list TeamLeader::crm()->company()->info($id); //https://developer.focus.teamleader.eu/#/reference/crm/companies/companies.info TeamLeader::crm()->company()->add(['first_name' => ..., ...]); //https://developer.focus.teamleader.eu/#/reference/crm/companies/companies.add TeamLeader::crm()->company()->update($id, ['first_name' => ...]) //https://developer.focus.teamleader.eu/#/reference/crm/companies/companies.update TeamLeader::crm()->company()->delete($id); //https://developer.focus.teamleader.eu/#/reference/crm/companies/companies.delete TeamLeader::crm()->company()->tag($id, $tags); //https://developer.focus.teamleader.eu/#/reference/crm/companies/companies.tag TeamLeader::crm()->company()->untag($id, $tags); //https://developer.focus.teamleader.eu/#/reference/crm/companies/companies.untag TeamLeader::deals()->list($data = []); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.list TeamLeader::deals()->info($id); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.info TeamLeader::deals()->create($data); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.create TeamLeader::deals()->update($id, $data); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.update TeamLeader::deals()->move($id, $phaseId); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.move TeamLeader::deals()->win($id); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.win TeamLeader::deals()->lose($id, $reason_id = null, $extra_info = null); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.lose TeamLeader::deals()->delete($id); //https://developer.focus.teamleader.eu/#/reference/deals/deals/deals.delete TeamLeader::deals()->lostReasons($data = []); //https://developer.focus.teamleader.eu/#/reference/deals/deals/lostreasons.list TeamLeader::invoicing()->invoices()->list($data = []) TeamLeader::invoicing()->invoices()->info($id) TeamLeader::invoicing()->invoices()->draft($data) TeamLeader::invoicing()->invoices()->update($id, $data) TeamLeader::invoicing()->invoices()->delete($id) TeamLeader::invoicing()->invoices()->download($id, $format = 'pdf') TeamLeader::invoicing()->invoices()->copy($id) TeamLeader::invoicing()->invoices()->book($id, $on) TeamLeader::invoicing()->invoices()->registerPayment($id, $paid_at, $amount, $currency = 'EUR') TeamLeader::invoicing()->invoices()->credit($id, $creditNoteDate) TeamLeader::invoicing()->taxRates()->list() TeamLeader::invoicing()->subscriptions()->list($data = []) TeamLeader::invoicing()->subscriptions()->info($id) TeamLeader::invoicing()->subscriptions()->create($data) TeamLeader::invoicing()->subscriptions()->update($id, $data) TeamLeader::invoicing()->subscriptions()->deactivate($id) TeamLeader::products()->product()->categoriesList($data = []) TeamLeader::products()->product()->list($data = []) TeamLeader::products()->product()->info($id) TeamLeader::products()->product()->add($data) TeamLeader::timeTracking()->list($data = []) TeamLeader::timeTracking()->info($id) TeamLeader::timeTracking()->add($data) TeamLeader::timeTracking()->update($id, $data) TeamLeader::timeTracking()->resume($id, $data) TeamLeader::timeTracking()->delete($id) TeamLeader::milestones()->list($data = []) TeamLeader::milestones()->info($id) TeamLeader::milestones()->add($data) TeamLeader::milestones()->update($id, $data) TeamLeader::milestones()->delete($id) TeamLeader::milestones()->close($id) TeamLeader::milestones()->open($id) TeamLeader::tasks()->list($data = []) TeamLeader::tasks()->info($id) TeamLeader::tasks()->add($data) TeamLeader::tasks()->update($id, $data) TeamLeader::tasks()->delete($id) TeamLeader::tasks()->complete($id) TeamLeader::tasks()->reopen($id) TeamLeader::tasks()->schedule($id) TeamLeader::webhooks()->list(); //https://developer.focus.teamleader.eu/#/reference/other/webhooks/webhooks.list TeamLeader::webhooks()->register($data); //https://developer.focus.teamleader.eu/#/reference/other/webhooks/webhooks.register TeamLeader::webhooks()->unregister($url, $types); //https://developer.focus.teamleader.eu/#/reference/other/webhooks/webhooks.unregister
完整文档可在以下位置找到:http://www.madeit.be/
支持
支持github或邮件:tjebbe.lievens@madeit.be
贡献
请尽量遵循psr-2编码风格指南。http://www.php-fig.org/psr/psr-2/
许可
此包受LGPL许可。您可以在个人和商业项目中免费使用它。代码可以被分支和修改,但原始版权作者应该始终被包含在内!