alexkart/looker-php-sdk-advanced

Looker API 的高级 PHP SDK

0.2.0 2023-06-02 11:06 UTC

This package is auto-updated.

Last update: 2024-08-31 00:41:30 UTC


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