kintone REST APIでデータを取得する
kintoneに保存したデータを外部から取得したいときがあります。kintone REST APIを使うと外部から簡単に取得することができます。
この記事ではNode.js(JavaScript)でデータを取得する方法を説明します。
kintone REST APIとは
kintone公式が提供しているkintoneのデータを操作するためのAPIです。
1日に実行できるAPIリクエスト数が1万件などいくつかの制限はありますが、使いやすくはなっています。
APIをつかってみる
APIからkintoneのレコードを取得してみます。
APIのURLは操作ごとに分かれており、一覧は次のページに書かれています。
レコードを取得するためには/k/v1/records.json
を使えば良さそうです。
APIトークン
APIを利用するには認証が必要です。認証方法にはいくつかの種類がありますが、ここではAPIトークンを利用します。
APIトークンはアプリごとに異なり、閲覧や編集権限を設定することが可能です。
次の手順でAPIトークンを取得します。
アプリの歯車アイコンをクリック
設定タブを開く
カスタマイズ/サービス連携のAPIトークンをクリック
生成するボタンをクリックしてAPIトークンを取得
保存ボタンをクリック
アプリを更新ボタンをクリックしてAPIトークンを有効化する
API実行
それでは実際にAPIを実行してレコードを取得してみます。
クエリパラメータに取得条件を、ヘッダーにAPIトークンを設定します。
(async function() {
// サブドメインは利用中のkintoneのURLと同じ
const url = new URL("https://<サブドメイン>.cybozu.com/k/v1/records.json");
// アプリIDは次の手順で確認できます
url.searchParams.append('app', <アプリID>);
url.searchParams.append('query', "<取得条件>");
const res = await fetch(url.href,
{
headers: {
"X-Cybozu-API-Token": "<APIトークン>",
},
})
console.log(JSON.stringify(await res.json()));
})();
アプリ管理をクリック
アプリ名の左の数字がアプリID
取得条件
条件を指定して一部のレコードを取得することもできます。
条件の書き方はSQLに似ています。
例えば、文字列(1行)のフィールド名が「title」の値に応じてレコードを取得するには次のように書きます。
title = "テスト" # 一致
title != "テスト" # 不一致
title like "テスト" # 「テスト」を含む
title in ("未着手", "対応中") # 「未着手」または「対応中」
フィールドごとに使用可能な演算子が異なりますので、条件が適用されない場合は確認してみてください。
まとめ
kintone REST APIを用いてレコードを取得する方法を説明しました。認証方法にAPIトークンを用いると権限を個別に設定できます。レコードの取得条件はSQLライクに設定できるため、使いやすいと思います。
Discussion