liftkeeper / oauth2-tsheets
为 The PHP League OAuth2-Client 提供的 QuickBooks TSheets OAuth 2.0 客户端提供商
1.0.3
2021-07-06 14:28 UTC
Requires
- php: >=5.6.0
- league/oauth2-client: 1.*|2.*
This package is auto-updated.
Last update: 2024-09-06 22:21:29 UTC
README
此包为 PHP League 的 OAuth 2.0 客户端 提供了 QuickBooks TSheets 的 OAuth 2.0 支持。
安装
要安装,请使用 composer
composer require liftkeeper/oauth2-tsheets
用法
用法与 The League 的 OAuth 客户端相同,使用 \Liftkeeper\OAuth2\Client\Provider\TSheets
作为提供者。
QuickBooks TSheets: 获取 API 访问令牌
授权码流
<?php require '{__PATH_TO_YOUR_VENDOR_DIRECTORY__}/autoload.php'; session_start(); $provider = new \Liftkeeper\OAuth2\Client\Provider\TSheets([ 'clientId' => '{__TSHEETS-CLIENT-ID__}', 'clientSecret' => '{__TSHEETS-CLIENT-SECRET__}', 'redirectUri' => '{__YOUR-CALLBACK-URL__}', ]); if (!isset($_GET['code'])) { $authUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authUrl); exit; } else if (empty($_GET['state']) || ( $_GET['state'] !== $_SESSION['oauth2state'] )) { unset($_SESSION['oauth2state']); exit('Invalid state'); } else { try { $accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'], ]); echo '<pre>'; echo 'Token: ' . $accessToken->getToken() . PHP_EOL; echo 'RefreshToken: ' . $accessToken->getRefreshToken() . PHP_EOL; echo 'Expires: ' . $accessToken->getExpires() . PHP_EOL; echo 'hasExpired: ' . ( $accessToken->hasExpired() ? 'expired' : 'not expired' ) . PHP_EOL; $resourceOwner = $provider->getResourceOwner($accessToken); print_r($resourceOwner); echo '</pre>'; } catch (Exception $e) { exit($e->getMessage()); } catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $e) { exit($e->getMessage()); } }
刷新令牌代码流
<?php $provider = new \Liftkeeper\OAuth2\Client\Provider\TSheets([ 'clientId' => '{__TSHEETS-CLIENT-ID__}', 'clientSecret' => '{__TSHEETS-CLIENT-SECRET__}', 'redirectUri' => '{__YOUR-CALLBACK-URL__}', ]); // load stored accessToken // $accessToken = loadAccessToken(); $newAccessToken = $provider->getAccessToken('refresh_token', [ 'grant_type' => 'refresh_token', 'access_token' => $accessToken ]); // save new accessToken // saveAccessToken($newAccessToken);
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。