先日、kintone Café 浜松 Vol.16 に参加した際に、ゲストスピーカーのサイボウズ 後迫さんが kintone SDK の話とデモを見せてくれました。
それに、刺激されて kintone API SDK for Node.js を使ってアプリの一覧情報を取得して見ました。
インストールと設定
まずは Node.js を macやPCにインストールして下さい。
今回はローカルにNodeのパッケージをインストールしていきます。
作業用のディレクトリを作成します。
次に、npm init
してから(質問には全てEnter)、npm install --save kintone-nodejs-sdk
として作業用のディレクトリにNodeパッケージをインストールします。
今回のサンプルコードでは、環境変数を dotenv を使って 環境設定ファイルから読み込みますので、そちらも npm install --save dotenv
してインストールします。
サンプルコード
kintoen アプリ情報の一覧を取得する getApps(offset, limit) モジュールのサンプルコードです。
とりあえず、接続して全件取得するだけです。ここまでくれば後は何なりと、CSVに落とすもよし。
require('dotenv').config();
const kintone = require('kintone-nodejs-sdk');
const env = process.env;
// Define Authentication object
let kintoneAuth = new kintone.Auth();
let username = env.USER_NAME;
let password = env.PASSWORD;
kintoneAuth.setPasswordAuth(username, password);
let DomainName = env.DOMAIN;
let kintoneConnection = new kintone.Connection(DomainName, kintoneAuth);
let kintoneApp = new kintone.App(kintoneConnection);
function fetchApps(optOffset, optLimit) {
let offset = optOffset || 0;
let limit = optLimit || 100;
kintoneApp.getApps(offset, limit)
.then((rsp) => {
let apps = rsp.apps;
if (apps.length === 100) {
console.log(apps);
return fetchApps(offset + 100, limit);
}
console.log(apps);
})
.catch((err) => {
// This SDK return err with KintoneAPIExeption
console.log(err.get());
});
}
fetchApps();
実行結果(一部)
[ { appId: '1',
code: '',
name: '顧客管理ハンズオン',
description: '<div><br /></div>',
createdAt: '2017-06-24T08:36:29.000Z',
creator: { code: '20170701', name: 'アプリ管理者' },
modifiedAt: '2017-06-25T13:08:46.000Z',
modifier: { code: 'Administrator', name: 'Administrator' },
spaceId: null,
threadId: null },
{ appId: '2',
code: '',
name: '日報ハンズオン',
description: '<div><br /></div>',
createdAt: '2017-06-24T09:32:24.000Z',
creator: { code: '20170701', name: 'アプリ管理者' },
modifiedAt: '2017-06-25T00:44:30.000Z',
modifier: { code: 'Administrator', name: 'Administrator' },
spaceId: null,
threadId: null },
...
説明
使いたいのは、getApps() だけなのですが、それには前処理として下記の段階が必要です。
- 認証設定 kintone.Auth()
- 接続設定 kintone.Connection()
- アプリ情報取得 kintone.App()
kintone REST API の制限で100件づつの取得になりますので、100件以上あるときは再帰処理をして全件取得しています。
まとめ
利用したいモジュールまでに、段階を踏まないといけないのが少し煩雑でしょうか。
ラッパーモジュールが欲しいですね。