alexkart / looker-php-sdk-advanced
Looker API 的高级 PHP SDK
Requires
- php: >=8.1
- alexkart/looker-php-sdk: 0.2.*
Requires (Dev)
- phpunit/phpunit: ^9.5
- vlucas/phpdotenv: ^5.4
README
API版本:4.0
此包是生成的 Looker PHP SDK 的高级版本。它增加了额外的功能并简化了与 Looker API 的交互。您只需使用一个 Looker 对象即可与 Looker 提供的整个 API 交互,无需担心其他任何事情。目前,它提供了以下额外功能
- 为各种 SDK 类提供单个包装对象
- 自动处理认证过程
- 自动更新过期的访问令牌并将它们存储到持久存储中
- ...以后还会添加更多
安装 & 使用
Composer
composer require alexkart/looker-php-sdk-advanced
手动安装
下载文件并包含 autoload.php
require_once('/path/to/looker-php-sdk-advanced/vendor/autoload.php');
入门指南
在 examples 文件夹中查看使用示例。这些示例使用来自 .env
文件的 Looker 凭据,您可以复制 .env.example
文件来创建它。
基本示例
为了开始与 API 交互,您只需实例化 Looker 对象并提供一个包含 Looker 主机和有效凭据(API 客户端 ID 和 API 客户端密钥)的配置即可
$config = new \App\CustomLookerConfiguration( 'https://looker-host:19999/api/4.0', 'client-id', 'client-secret', ); $looker = new \Alexkart\Looker\Looker($config);
然后您可以调用任何 API 端点,例如
$looks = $looker->lookApi->searchLooks(null, 'test'); $dashboards = $looker->dashboardApi->allDashboards(['title']); $folders = $looker->folderApi->allFolders();
完整的示例代码请在此处查看 basic.php
这是与 API 交互的最简单方式,每次实例化 Looker 对象时都会请求新的访问令牌。作为替代,您可以提供现有的访问令牌,并将其用于对 API 的请求进行认证。
$config = new \Alexkart\Looker\LookerConfiguration( 'https://looker-host:19999/api/4.0', '', '', 'access-token' ); $looker = new \Alexkart\Looker\Looker($config);
您可以同时提供访问令牌和 API 凭据
$config = new \Alexkart\Looker\LookerConfiguration( 'https://looker-host:19999/api/4.0', 'client-id', 'client-secret', 'optional-access-token' ); $looker = new \Alexkart\Looker\Looker($config);
您提供的访问令牌将一直被使用,直到它有效,当它过期时,将自动请求新的令牌。您可以像这样检查令牌是否已更新
if ($looker->getLookerConfig()->isAccessTokenRenewed()) { $token = $looker->getLookerConfig()->getAccessToken(); }
如果您希望在令牌更新时自动将其存储到持久存储(数据库、缓存、文件等),您可以扩展 LookerConfiguration
类并提供 storeAccessToken()
方法的实现,并使用此类来实例化 Looker
对象
class CustomLookerConfiguration extends \Alexkart\Looker\LookerConfiguration { public function storeAccessToken($accessToken): void { file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'looker_access_token.txt', $accessToken); } }
当从 API 请求新的访问令牌时,将调用此方法。此外,您还可以实现 loadAccessToken()
方法,它将用于从您的存储中获取访问令牌。您只需提供 API 凭据,它将为您处理访问令牌的工作。
class CustomLookerConfiguration extends \Alexkart\Looker\LookerConfiguration { public function storeAccessToken($accessToken): void { file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'looker_access_token.txt', $accessToken); } public function loadAccessToken(): string { return (string)file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'looker_access_token.txt'); } }
完整的示例代码请在此处查看 custom_configuration.php