🕌

kintone REST APIでデータを取得する

2023/12/30に公開

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