Go言語で kintoneアプリのフィールド情報をCSV出力するコマンドラインツールを作った話し


Go言語の自習の仕上げに、yaclik という小さなコマンドラインツールを作ったのでその紹介です。

kintoneアプリからレコードを取得・登録などを行う、Go言語で書かれたコマンドラインツールに、cli-kintoneがあります。

今回試しに作ったのは、kintoneアプリのフィールド情報をAPIで取得して、CSV形式でターミナルに表示するだけのツールです。
それ以上のことは何も出来ないのですが、kintoneアプリのフィールド一覧がドキュメントで必要になった時には使えるかと思います。

出力できる情報は下記の3つだけです。

  1. フィールドコード
  2. フィールド名称
  3. フィールドタイプ

一応テーブル内のフィールドにも対応していますが、その際のフィールドコードにプレフィックスとして

~SUBTABLE~<フィールドコード> のように表示します。

必要に応じて、CSVファイルに出力した後に編集ください。

ファイルは下記に置いてあります。

ビルドしたバイナリファイルもリリースにアップしていますが、Mac版のみです。

Windowsで試されたい方はソースからビルドいただければと思います。

使い方

Macの場合です。

下記からバイナリファイルをダウンロードします
https://github.com/sy250/yaclik/releases

適当なディレクトリにて実行します。
./yaclik -hでコマンドライン引数を表示します。

Usage of ./yaclik:
  -a string
        App ID (default "0")
  -d string
        Domain name
  -n string
        User login name
  -o string
        Output format (default "csv")
  -p string
        User login password

-o jsonでJSON形式で出力します。

出力サンプル

kintoneの顧客サポートパックにある、問い合わせ管理アプリの情報を出力しています。

$ yaclik -a <APP_ID> -d <SUB_DOMAIN> -n <USER_ID> -p <USER_PASSWORD>
field_code,label,type
レコード番号,レコード番号,RECORD_NUMBER
更新日時,更新日時,UPDATED_TIME
カテゴリー,カテゴリー,CATEGORY
対応詳細,対応詳細,SUBTABLE
~SUBTABLE~対応内容,対応内容,MULTI_LINE_TEXT
~SUBTABLE~添付ファイル,添付ファイル,FILE
~SUBTABLE~対応日時,対応日時,DATETIME
電話番号,電話番号,LINK
作成日時,作成日時,CREATED_TIME
ご担当者名,ご担当者名,SINGLE_LINE_TEXT
詳細,詳細,MULTI_LINE_TEXT
更新者,更新者,MODIFIER
作成者,作成者,CREATOR
問い合わせ種別,問合せ種別,RADIO_BUTTON
ステータス,ステータス,STATUS
対応状況,対応状況,DROP_DOWN
受付日時,受付日時,DATETIME
対応担当者,対応担当者,USER_SELECT
期限,期限,DATE
作業者,作業者,STATUS_ASSIGNEE
ルックアップ,会社名,SINGLE_LINE_TEXT

少し便利な使い方

Macでは、引数を別のシェルスクリプトにしてあげたり、作成するファイル名もファイルに一覧として登録すると便利だと思います。

出力するファイル名の一覧として下記を用意

1-顧客台帳.csv
2-問い合わせ管理.csv

ドメインやログイン情報として下記を用意

env.sh
export DOMAIN=<サブドメイン>
export APP_ID=<ログインID>
export PASSWORD=<パスワード>
bat.bash
for file in `cat list`
do
  echo "$file"
  [[ ${file} =~ ^([0-9]+)-(.*)$ ]];
  app=${BASH_REMATCH[1]}
  ./yaclik -a ${app} -d $DOMAIN -n $APP_ID -p $PASSWORD | nkf -Ws > ${file}
done