(非推奨)kintoneコマンドラインツール(cli-kintone v0)
警告
この記事で紹介しているcli-kintone v0は、2023年10月31日をもって、セキュリティアップデートを含めたすべての開発を終了します。
cli-kintone v0を利用している場合には、2022年10月24日にリリースされたv1.0.0以降のcli-kintoneへの移行を推奨します。
詳細は、次のページを参照してください。
cli-kintone v0メンテナンス終了のお知らせ
cli-kintoneとは
kintoneコマンドラインツール(cli-kintone)は、コマンドでkintoneへデータをインポートしたり、エクスポートしたりできるツールです。
cli-kintoneを使うと、kintoneの画面からレコードを一括登録・更新する機能ではできない、次の操作ができます。
- 一括でレコードの添付ファイルをダウンロードする。
- 一括で添付ファイルをレコードに添付する。
cli-kintoneはCLIツールとして提供されているため、プログラムからkintoneのデータのインポートやエクスポートができます。
この記事では、cli-kintoneの基本的な使い方を説明しています。
詳しい使い方は、次のページを参照してください。
kintoneコマンドラインツール(v0)の使い方
GitHub
https://github.com/kintone-labs/cli-kintone
ライセンス
GNU General Public License v2.0
ドキュメント
https://github.com/kintone-labs/cli-kintone/blob/master/README.md
注意事項
- cli-kintoneを使ってレコードをインポート/エクスポートするには、スタンダードプランが必要です。
- 大量のレコードデータを操作すると、kintoneに負荷がかかり、パフォーマンスに影響することがあります。
導入方法
cli-kintoneのWindows/macOS/Linux向けの実行ファイルは、GitHubのReleasesページからダウンロードできます。
Releases
ファイルをダウンロードしたら解凍して、実行ファイルを任意の場所においてください。
Quickstart
ここでは、Windowsでの使い方を例に説明します。
データをエクスポートする
STEP1:下準備
-
次のフィールドを配置した、kintoneのアプリを作成します。
フィールド名 フィールドの種類 フィールドコード 備考 社員番号 文字列(1行) EmployeeId 氏名 文字列(1行) Name 入社日 日付 JoinDate 所属 ドロップダウン Division 項目には、次の値を設定します。 - 開発部
- 総務部
- 営業部
- 企画部
- 人事部
写真 添付ファイル Photo -
テストデータとして、2件のレコードを追加します。
-
作成したアプリのURLで、アプリIDを確認します。
URLのhttps://sample.cybozu.com/k/123
の末尾の数字部分が、アプリIDです。 上記の場合、アプリIDは、123
です。 -
「レコード閲覧」の権限を付けたAPIトークンを生成します。
手順の詳細は、次のページを参照してください。
APIトークンを生成する
STEP2:ログイン名/パスワードでレコードの情報を表示する
レコードの情報を表示するには、--export
を指定します。
--export
に続けて、必ずドメイン名とアプリIDも指定します。
-d
:ドメイン名-a
:アプリID
ログイン名は、-u
オプションで指定します。
実行例
|
|
パスワードの入力を求められます。
指定したユーザーのパスワードを入力すると、CSV形式で、アプリのレコード情報が表示されます。
項目の見出し名は、フィールドコードの値です。
実行例
|
|
STEP3:APIトークンでレコードの情報を表示する
APIトークンを使って、レコードの情報を表示できます。
APIトークンは、-t
オプションに指定します。
実行例
|
|
STEP4:Shift-JISでレコードの内容を表示する
cli-kintoneの標準の文字コードは、UTF-8です。
Shift-JISでレコードの内容を表示するには、-e
オプションにsjis
を指定します。
実行例
|
|
STEP5:ファイルにエクスポートする
シェルのリダイレクト機能を使うと、出力結果をファイルに出力できます。
実行例
|
|
STEP6:絞り込み条件とデータの並び順を指定する
絞り込み条件や、データの並び順を指定する場合には、-q
オプションでクエリを指定します。
クエリ記法は、次のページを参照してください。
クエリの書き方
実行例
|
|
STEP7:添付ファイルをダウンロードする
レコードに添付されたファイルをダウンロードする場合には、-b
オプションに、ダウンロード先のフォルダー名を指定します。
フォルダー名は、実行している場所からの相対パスです。
実行例
|
|
添付ファイルは、指定したフォルダー下の、レコードごとに作られるフォルダーへダウンロードされます。
レコードごとに作られるフォルダーの命名規則は、次の2とおりです。
-
-c
オプションを指定していない、または-c
オプション で $idを指定した場合
フォルダー名は、「フィールドコード
-$idの値
」です。1 2 3 4 5 6 7
attachments ├── Photo-1 │ ├── yamada-taro.png ├── Photo-2 │ └── suzuki-hanako.png └── Photo-3 └── takahashi-ichiro.png
-
-c
オプションで $idを指定していない場合
フォルダー名は、「フィールドコード
-0から始まる数字
」です。1 2 3 4 5 6 7
attachments ├── Photo-0 │ ├── yamada-taro.png ├── Photo-1 │ └── suzuki-hanako.png └── Photo-2 └── takahashi-ichiro.png
STEP8:テーブルのデータを表示する
下準備
-
STEP1で作成したアプリに、テーブルのフィールドを追加します。
フィールド名 フィールドの種類 フィールドコード 備考 配属情報 テーブル AssignInformation テーブルには、「配属日」「配属部署」を配置します。 配属日 日付 AssignDate 「レコード登録時の日付を初期値にする」のチェックボックスを外します。 配属部署 ドロップダウン AssignDivision 項目には、次の値を設定します。 - 開発部
- 総務部
- 営業部
- 企画部
- 人事部
-
作成したテストデータを1件追加します。
「異動情報」テーブルには、2行追加してください。
テーブルのデータを表示する
標準機能のファイル書き出しと同じように、テーブルのデータは、1レコードの内容が複数行に分けて表示されます。
ファイルの先頭列の「*」から次の「*」の前までの行が、1つのレコードのデータです。
実行例
|
|
STEP9:フィールドを指定する
エクスポートするフィールドを指定するには、-c
オプションで指定します。
複数のフィールドを指定する場合は、半角カンマ(,
)でフィールド名を区切ります。
テーブルのデータを表示する場合は、テーブルのフィールドコードを指定します。テーブル内のフィールドは指定できません。
フィールドの並び順を指定したい場合は、出力したいフィールドの並び順どおりになるよう、-c
オプションでフィールドコードを並べます。
実行例
|
|
データをインポートする
STEP1:下準備
-
次のフィールドを配置した、kintoneのアプリを作成します。
フィールド名 フィールドの種類 フィールドコード 備考 社員番号 文字列(1行) EmployeeId 「値の重複を禁止する」のチェックボックスを選択する 氏名 文字列(1行) Name 入社日 日付 JoinDate 所属 ドロップダウン Division 項目には、次の値を設定します。 - 開発部
- 総務部
- 営業部
- 企画部
- 人事部
写真 添付ファイル Photo -
作成したアプリのURLで、アプリIDを確認します。
URLのhttps://sample.cybozu.com/k/123
の末尾の数字部分が、アプリIDです。 上記の場合、アプリIDは、123
です。 -
「レコード追加」「レコード編集」「レコード削除」の権限を付けたAPIトークンを生成します。 手順の詳細は、次のページを参照してください。
APIトークンを生成する
STEP2:レコードを追加する
レコードをインポートするには、--import
を指定します。
--import
に続けて、必ずドメイン名とアプリIDも指定します。
-d
:ドメイン名-a
:アプリID
レコードを追加するには、-f
オプションで、レコードに追加する内容を記載したCSVファイルを指定します。
CSVファイルの1行目は、項目名です。
項目名には、対応するフィールドのフィールドコードを指定します。
CSVファイルの例
|
|
実行例
|
|
STEP3:レコードを更新する
既存のレコードを更新するには、次の2つの方法があります。
方法1:レコードIDを使う
方法1では、レコードIDが一致しているレコードを更新します。
CSVファイルに、「$id」項目を用意します。
「$id」には更新するレコードIDを指定します。
「$id」項目の値が空文字の場合は、新規にレコードが追加されます。
レコードIDが1のレコードを更新し、「坂本 舞子」のデータを追加するCSVファイルの例
|
|
実行例
|
|
方法2:フィールドコードを使う
方法2では、指定したフィールドコードの値が一致するレコードを更新します。
データを特定するためのキーとなるフィールドコードの項目名の先頭に、*
をつけます。
キーとなるフィールドには、「値の重複を禁止する」を設定してください。
また、レコード番号フィールドは指定できません。
社員番号が「0005」のレコードを変更するCSVファイルの例
|
|
実行例
|
|
STEP4:既存のレコードをすべて削除して追加する
既存のデータをすべて削除してレコードを追加するには、-D
オプションを指定します。
実行例
|
|
STEP5:添付ファイルをアップロードする
レコードにファイルを添付するには、-b
オプションで、アップロードするファイルを配置したフォルダー名を指定します。
フォルダー名は、実行している場所からの相対パスです。
CSVの添付ファイルフィールドの値に指定するファイルは、実行している場所からの相対パスです。
*CSVの例
|
|
フォルダー構成の例
|
|
実行例
|
|
ファイルを複数指定する場合
ファイルを複数指定する場合には、改行(CR)で区切ります。Microsoft Excelでは、ALT + Enterキーで入力できます。
*CSVの例
|
|
添付ファイルを削除する場合
添付ファイルフィールドに添付されているファイルをすべて削除する場合は、値を空白にします。
一部の添付ファイルを削除したい場合には、残したいファイル名だけにします。
社員番号が「0006」のレコードの添付ファイルを削除し、社員番号が「0007」の添付ファイルを「ishikawa-megumi.png」のみにするCSVの例
|
|
STEP6:テーブルのデータを更新する
下準備
-
STEP1で作成したアプリに、テーブルのフィールドを追加します。
フィールド名 フィールドの種類 フィールドコード 備考 配属情報 テーブル AssignInformation テーブルには、「配属日」「配属部署」を配置します。 配属日 日付 AssignDate 「レコード登録時の日付を初期値にする」のチェックボックスを外します。 配属部署 ドロップダウン AssignDivision 項目には、次の値を設定します。 - 開発部
- 総務部
- 営業部
- 企画部
- 人事部
-
作成したテストデータを1件追加します。
テーブルのデータを更新する
標準機能のファイル読み込みと同じように、テーブルのデータは、1レコードの内容を複数行に分けて作成します。
ファイルの先頭列の「*」から次の「*」の前までの行が、1つのレコードのデータを表します。
ファイルの先頭列は、「*」という項目名にします。
各レコードのデータの開始行の先頭列には「*」を記載し、それ以外は空にします。
CSVファイルの例
|
|
実行例
|
|
補足
オプション一覧
オプションを指定せずに実行すると、オプションの一覧が表示されます。
|
|
メインのオプション
レコードをインポート、またはエクスポートする
オプション | 説明 |
---|---|
--export | kintoneからデータを取得し、標準出力にエクスポートします。 ファイルに出力する場合は、OSのシェルの機能であるリダイレクトを利用します。 詳しくは、次のページを参照してください。 ファイルにエクスポートする |
--import | 標準入力から、kintoneにデータをインポートします。 ファイルからインポートする場合には、 -f オプションを同時に指定してください。詳しくは、次のページを参照してください。 ファイルからデータをインポートする |
--export
または--import
以降に指定するオプション
オプション | 必須 | 説明 |
---|---|---|
-d | 必須 | ドメイン名 exmaple.cybozu.comのようにドメインを指定します。 サブドメイン名だけを指定すると、「.cybozu.com」が自動で付与されます。 |
-a | 必須 | アプリID |
-u | 条件必須 | ログイン名 パスワードで認証する場合は必須です。 |
-p | 条件必須 | パスワード パスワードで認証する場合は必須です。 |
-t | 条件必須 | APIトークン APIトークンで認証する場合は必須です。 |
-U | 省略可 | Basic認証のログイン名 |
-P | 省略可 | Basic認証のパスワード |
-g | 省略可 | ゲストスペースのID |
-o | 省略可 | 出力形式 次の値を指定します。
|
-e | 省略可 | ファイルのエンコード方式 次の値を指定します。
|
-q | 省略可 | レコードの絞り込み条件 条件式の書き方は、次のページを参照してください。 クエリの書き方 このオプションを指定している場合に、クエリに limit やoffset を含まないときは、カーソルAPIを使ってレコードが取得されます。 |
-c | 省略可 | エクスポートするフィールドコード 複数のフィールドウィ指定する場合は、カンマ区切りで指定します。 詳細は、次のページを参照してください。 フィールドを指定する |
-f | 省略可 | インポートするファイル名 |
-b | 省略可 | 添付ファイルのフォルダー名 エクスポートする場合は、添付ファイルを保存するフォルダー名を、インポートする場合は、アップロードするファイルを配置したフォルダー名を相対パスで指定します。 |
-l | 省略可 | インポートの開始行 指定した行からインポートされます。 省略すると、データの1行目からインポートします。 |
-D | 省略可 | 既存レコードをすべて削除してからインポートをするか |
制限事項
- IPアドレス制限を設定している場合、ツールを実行する環境のIPアドレスのアクセスを許可してください。
クライアント証明書を利用しての実行はできません - アップロードできる添付ファイルのサイズ上限は、1ファイルあたり10MBまでです。
- 次のフィールドはエクスポートできません。
- ステータス
- 作業者
- カテゴリー
- 関連レコード
- 次のフィールドにインポートしても値は登録・更新されません。
- ルックアップ元からコピーされるフィールド
- 計算
- 自動計算が設定されている文字列(1行)フィールド
- ステータス
- 作業者
- カテゴリー
- 作成者
- 作成日時
- 更新者
- 更新日時
- 関連レコード
関連Tips
更新履歴
詳細は、GitHubのReleasesを参照してください。
Releases
- 2018年01月10日Version 0.9.0
- ユーザーエージェント名を修正
- 標準入力をインポートデータに指定できる機能を追加
- CSVの読み込み開始行を指定できる機能を追加
- 100行以上のインポート処理でエラーメッセージが表示されない問題に対応し、インポート処理で100行毎に結果を出力するよう修正
- Basic認証のロジックを修正
- 2018年04月12日Version 0.9.1
- ゲストスペース内のアプリに対して次のコマンドを使用するとインポートに失敗するバグを修正
cli-kintone.exe -d {ドメイン名} -a xx -g xx -t {APIトークン} -f {ファイルパス}
- ゲストスペース内のアプリに対して次のコマンドを使用するとインポートに失敗するバグを修正
- 2018年05月15日Version 0.9.2
- 3rd party libraryのバージョンを最新版ではなく、バージョン指定してリリースするように変更
- 2019年02月27日Version 0.9.3
- Shift-JISでエクスポートした場合、エクスポートされたファイルのフィールドに。
- UTF-8からShift-JISに変換できない文字が含まれていると、フィールドの値が移動するバグを修正
- 2019年04月02日Version 0.9.4
- 特殊な文字コードをもつ文字列に関する不具合を修正
- 2019年11月26日Version 0.10.0
- Goのバージョンを1.9.3から1.13.3に更新
-v
または--version
を使用してツールのバージョンを取得できるように更新
- 2019年11月28日Version 0.10.1
- エクスポートするレコードがない場合のメッセージを変更
- 2020年02月12日Version 0.10.2
- データの取得方法を以下のように変更
-q
オプションを指定した際、クエリに「limit」または「offset」が含まれない場合にカーソルAPIを実行するように変更- クエリに「limit」または「offset」が含まれている場合にレコード一括取得APIを実行するように変更
- ユーザーエージェント名を下記フォーマットに変更
cli-kintone/バージョン(OS情報)
- Mac OS X/LinuxとWindowsでのビルドやデータ操作方法の説明をREADMEにて更新
- データの取得方法を以下のように変更
- 2020年03月31日Version 0.11.0
- 以下のエンコーディング方式に対応
- GBK(簡体字)
- Big5(繁体字)を追加
- UTF-8(BOM付き)ファイルのインポートに対応
- Goのバージョンを1.13.3から1.13.7に更新
- 以下のエンコーディング方式に対応
- 2020年12月07日Version 0.11.3
- Goのバージョンを1.13.7から1.15.5に更新
- レコードの添付ファイルを削除できる機能を追加
- 2022年09月07日Version 0.14.0
- 内部的に利用しているgo-kintoneをv0.4.1からv0.4.3に更新
それに伴い、エクスポートできるフィールドに一部変更があります。- グループフィールドに設置した次のフィールドをエクスポートできるようになりました。
- レコード番号、作成者、作成日時、更新者、更新日時
- 関連レコードフィールドがエクスポートされなくなりました。
- グループフィールドに設置した次のフィールドをエクスポートできるようになりました。
- 内部的に利用しているgo-kintoneをv0.4.1からv0.4.3に更新
この記事で紹介しているサンプルコードは、2022年8月版kintoneおよびcli-kintone Version 0.14.0で動作を確認しています。