madeitbelgium/teamleader

Laravel TeamLeader SDK

1.11.0 2023-08-08 08:59 UTC

This package is auto-updated.

Last update: 2024-09-05 15:10:42 UTC


README

Latest Stable Version Total Downloads License

使用此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许可。您可以在个人和商业项目中免费使用它。代码可以被分支和修改,但原始版权作者应该始终被包含在内!