Closed2
Looker API4.0
まずはここを見よう。
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"])
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にクローズされました