LoginSignup
0
0

More than 5 years have passed since last update.

kintone Café で kintone SDK のデモに刺激され、kintone API SDK for Node.js を使って見た。

Posted at

先日、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() だけなのですが、それには前処理として下記の段階が必要です。

  1. 認証設定 kintone.Auth()
  2. 接続設定 kintone.Connection()
  3. アプリ情報取得 kintone.App()

kintone REST API の制限で100件づつの取得になりますので、100件以上あるときは再帰処理をして全件取得しています。

まとめ

利用したいモジュールまでに、段階を踏まないといけないのが少し煩雑でしょうか。
ラッパーモジュールが欲しいですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0