sumocoders / teamleader-oauth2
PHP Teamleader oauth2 包,用于连接 Teamleader API (https://developer.teamleader.eu/)
v1.1.0
2023-02-20 13:02 UTC
Requires
- php: ^7.4 || ^8.1
- ext-json: *
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
Requires (Dev)
- phpstan/phpstan: ^1.9
- squizlabs/php_codesniffer: ^3.7
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'], ], ] )