alexkart/looker-php-sdk-advanced 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

alexkart/looker-php-sdk-advanced

最新稳定版本:0.2.0

Composer 安装命令:

composer require alexkart/looker-php-sdk-advanced

包简介

Advanced PHP SDK for Looker API

README 文档

README

API version: 4.0

This package is an advanced version of generated Looker PHP SDK. It adds additional functionality and simplifies the work with the Looker API. You can interact with the whole API that Looker provides with just one Looker object and don't worry about anything else. Currently, it provides the following additional functionality:

  • Provides a single wrapper object for various SDK classes
  • Automates authentication process
  • Automatically renews expired access tokens and stores them into the persistent storage
  • ... more will be added later

Installation & Usage

Composer

composer require alexkart/looker-php-sdk-advanced

Manual Installation

Download the files and include autoload.php:

require_once('/path/to/looker-php-sdk-advanced/vendor/autoload.php');

Getting Started

See usage examples in the examples folder. These examples use Looker credentials from the .env file, you can create it by copying .env.example file.

Basic example

In order to start interacting with the API you just need to instantiate Looker object and provide a config with the Looker host and valid credentials (API client id and API client secret):

$config = new \App\CustomLookerConfiguration(
    'https://looker-host:19999/api/4.0',
    'client-id',
    'client-secret',
);
$looker = new \Alexkart\Looker\Looker($config);

Then you can call any API endpoint like this:

$looks = $looker->lookApi->searchLooks(null, 'test');
$dashboards = $looker->dashboardApi->allDashboards(['title']);
$folders = $looker->folderApi->allFolders();

The complete working example you can find here basic.php

This is the simplest way to interact with the API, it will request a new access token each time the Looker object is instantiated. Alternatively you can provide an existing access token and it will be used to authenticate requests to the API.

$config = new \Alexkart\Looker\LookerConfiguration(
    'https://looker-host:19999/api/4.0',
    '',
    '',
    'access-token'
);
$looker = new \Alexkart\Looker\Looker($config);

You can provide both access token and API credentials:

$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);

The access token you provided will be used until it is valid and when it expires a new token will be requested automatically. You can check if the token has been renewed like this:

if ($looker->getLookerConfig()->isAccessTokenRenewed()) {
    $token = $looker->getLookerConfig()->getAccessToken();
}

If you want the access token to be stored into the persistent storage (database, cache, file, etc.) automatically when it is renewed you can extend LookerConfiguration class and provide implementation for the storeAccessToken() method and use this class to instantiate Looker object:

class CustomLookerConfiguration extends \Alexkart\Looker\LookerConfiguration {
    public function storeAccessToken($accessToken): void {
        file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'looker_access_token.txt', $accessToken);
    }
}

This method will be called when new access token is requested from the API. Additionally, you can implement loadAccessToken() method and it will be used to get the access token from your storage. You will just need to provide API credentials and it will handle the work with access tokens for you.

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');
    }
}

The complete working example you can see here custom_configuration.php

统计信息

  • 总下载量: 174
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-06-24