sumocoders/teamleader-oauth2

PHP Teamleader oauth2 包,用于连接 Teamleader API (https://developer.teamleader.eu/)

v1.1.0 2023-02-20 13:02 UTC

This package is auto-updated.

Last update: 2024-09-03 10:51:39 UTC


README

安装

composer require sumocoders/teamleader-oauth2

配置

此包使用 PSR-17 和 PSR-18。您可以使用任何您想要的实现。

为了保存访问令牌,我们提供了一个 TokenStorageInterface,您需要在此接口中实现令牌的存储和检索。

interface TokenStorageInterface
{
    public function getTokenType(): string;
    public function getAccessToken(): ?string;
    public function getRefreshToken(): ?string;
    public function isExpired(): bool;
    public function storeTokens(array $tokens): void;
}

查看默认令牌存储类,了解如何实现自己的实现。

Teamleader 类需要 clientId 和 clientSecret。您需要在 Teamleader 市场place 中获取这些信息。

使用

要获取访问令牌,您需要调用

$teamleader->acquireAccessToken($redirectUrl, $code);

其中 $redirectUrl 是 Teamleader 在 OAuth2 身份验证后返回的 URL,而 $code 是 Teamleader 返回到您的站点并验证身份时使用的。

之后,您可以使用 Teamleader 类调用 Teamleader API。当访问令牌过期时,Teamleader 类将自动刷新令牌。

获取数据

$teamleader->get('users.me');
$teamleader->get('departments.list');
$teamleader->get('companies.list');

提交数据

$teamleader->post(
    'contacts.add',
    [
        'first_name' => 'John',
        'last_name' => 'Doe',
    ]
);
$teamleader->post(
    'contacts.update',
    [
        'id' => 'xxx',
        'first_name' => 'John',
        'last_name' => 'Doe',
        'emails' => [
            ['type' => 'primary', 'email' => 'john@doe.com'],
        ],
    ]
)