🙌

GASでkintoneアプリのレコードを1件GETする

2022/03/10に公開

GAS(Google Apps Script)でkintoneアプリのレコードをGETしてみましょう👀

kintoneアプリを作る

こんなkintoneアプリ(フィールド名=フィールドコード)を準備します。
レコードも複数登録しておきましょう。

APIトークンを作っておく

こちらを参考にAPIトークンを作りましょう。
https://developer.cybozu.io/hc/ja/articles/202463840-APIトークンを使ってみよう

アクセス権はレコード閲覧にチェックが入っていればOK!
APIトークンはコピーしておきます。

GASのプロジェクトを作る

https://script.google.com/home

↓↓新しいプロジェクトボタンをクリックしてコードエディタを開きます。

↓↓コードエディタ

GASのhttpリクエストのサンプルコードを書き換える

↓こちらのページにあるPOST用のコードを参考にちょっと書き換えていきます。
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app

書き換え前のコードの必要な部分。

// Make a GET request and log the returned content.
var response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());
var options = {
  'method' : 'post',
  'contentType': 'application/json',
  // Convert the JavaScript object to a JSON string.
  'payload' : JSON.stringify(data)
};
UrlFetchApp.fetch('https://httpbin.org/post', options);

kintoneにアクセスするリクエストヘッダ

↓↓こちらを参考に
https://developer.cybozu.io/hc/ja/articles/201941754#step7

APIトークンでユーザー認証する場合はリクエストヘッダにX-Cybozu-APIを追加します。

X-Cybozu-API-Token : APIトークン

というわけで、先程のコードのoptionsを下記のように書き換えます。

const options = {
  headers : {
    X-Cybozu-API : APIトークン
  }
};

アプリIDとレコード番号を指定する

サンプルコードのURLを書き換えます。
例えば、アプリIDが300でレコード番号が1ならこんな感じ

UrlFetchApp.fetch('https://サブドメイン.cybozu.com/k/v1/record.json?app=300&id=1', options);

取得したデータを実行ログ出力する

サンプルコードのこの辺をいじります。

// Make a GET request and log the returned content.
var response = UrlFetchApp.fetch('http://www.google.com/');
Logger.log(response.getContentText());

↓こんな感じ↓

// Make a GET request and log the returned content.
const response = UrlFetchApp.fetch('https://サブドメイン.cybozu.com/k/v1/record.json?app=300&id=1', options);
Logger.log(response.getContentText());

全体的なコード

ちょっと簡単にまとめて・・・

function GetRecord() {
  // リクエストパラメータの設定
  const url = 'https://サブドメイン.cybozu.com/k/v1/record.json?app=300&id=1';
  const options = {
    headers : {
      'X-Cybozu-API-Token' : 'APIトークン',
    },
  };

  // 取ってきたレコードのデータを表示する
  const resp = UrlFetchApp.fetch(url,options);
  Logger.log(resp.getContentText());

}

実行!

完成したら、「実行」か「デバッグ」をクリックしてみましょう👀

Discussion