Closed2

Looker API4.0

Kento.YamadaKento.Yamada

まずはここを見よう。
Looker API reference
Looker API 4.0 は安定版のSDK

メソッドは432、Type411個ある。

トークンを発行、iniファイルにトークンを書き込みスクリプトで読み込むとLookerへのアクセスが可能となる。

サンプルプログラム:自分の名前を取り出す。

main.py
import looker_sdk

sdk = looker_sdk.init40("./looker.ini")
my_user = sdk.me()
print(my_user["first_name"])
Kento.YamadaKento.Yamada

LookをAPIで実行すると結果をレスポンスで受け取ることができる。
以下はLookerのLookを実行して結果を得るためのスクリプト

XXXXXXにはLookerのエンドポイント名に合わせる。

// Replace this with your base domain e.g. https://mycompany.looker.com:19999/api/3.1
var BASE_URL = 'https://XXXXXX.jp.looker.com/api/4.0';
// Replace this with your API credentials
var CLIENT_ID = '{Lookerの管理者権限で取得するクライアントID}';
var CLIENT_SECRET = 'Lookerの管理者権限で取得するクライアントシークレット';

function LOOKER_RUN_LOOK(id, opt_format, opt_limit) {
  try {
    var options = {
      "method": "get",
      "headers": {
        "Authorization": "token " + login()
      }
    };

    // set formatting to either csv or the raw sql query since sheets is limited
    var formatting;
    // convert param
    switch (opt_format) {
      case 1:
      formatting = "csv";
      break;

      case 2:
      formatting = "sql";
      break;

      case 3:
      formatting = "txt";
      break;

      case 4:
      formatting = "md";
      break;

      default:
      formatting = "csv";
    }

    // set a custom limit
    var limit;
    if(opt_limit) {
      limit = opt_limit;
    // else use the 5k default
    } else if (opt_limit == -1) {
      limit = -1;
    } else {
      limit = 500;
    }

    // get request for the look
    var response = UrlFetchApp.fetch(BASE_URL + "/looks/" + id + "/run/" + formatting + "?limit=" + limit+"&apply_formatting=true", options);

    // if it's csv, fill it in the cells, if it's the query, use one cell only, if not specified, throw error
    if (opt_format == 1) {
      return Utilities.parseCsv(response.getContentText());
    } else if (opt_format == 2){
      return response.getContentText();
    }
    else {
      return Utilities.parseCsv(response.getContentText());
    }
  } catch (err) {
    return "Uh oh! Something went wrong. Check your API credentials and if you're passing the correct parameters and that your Look exists!";
  }
}

function login() {
 try{
  var post = {
    'method': 'post'
  };
  var response = UrlFetchApp.fetch(BASE_URL + "/login?client_id=" + CLIENT_ID + "&client_secret=" + CLIENT_SECRET, post);
  return JSON.parse(response.getContentText()).access_token;
 } catch(err) {
  return "Could not login to Looker. " + err
 }
}
このスクラップは2024/01/08にクローズされました