kintone コマンドラインツール(cli-kintone)
cli-kintone とは
kintone コマンドラインツール(cli-kintone)は、コマンドで kintone のレコード情報を入出力できるツールです。
コマンドラインツールとして提供されているため、シェルスクリプトファイルから呼び出して実行できます。
レコード情報の入出力だけでなく、
kintone の画面からレコードを一括登録・更新する機能
ではできない、次の操作もできます。
- 一括でレコードの添付ファイルをダウンロードする。
- 一括で添付ファイルをレコードに添付する。
この記事では、cli-kintone の基本的な使い方を説明しています。
バージョンが v1.0.0 より前の cli-kintone の使い方は、
kintone コマンドラインツール(cli-kintone v0) を参照してください。
実行例では Windows のコマンドプロンプトを使って説明しています。
ほかの環境で実行する場合には、適宜パスやファイル名を読み替えてください。
サポート方針
cli-kintone は、 運用環境で利用することを想定して、サイボウズ社が開発、提供しています。
バージョンが v1.0.0 以降の cli-kintone についての仕様の確認やトラブルは、テクニカルサポート(API 窓口)を通じたお問い合わせに対応しています。
サポートへのお問い合わせ方法
をご確認の上、お問い合わせください。
ソースコードの変更、再配布および商用利用等は、ライセンスにしたがって利用できます。
ライセンスの種別は各クライアントライブラリのページまたは GitHub のリポジトリで確認してください。
ただし、ソースコードを変更していることに起因して発生したトラブルは、サポート対象外です。
GitHub
https://github.com/kintone/cli-kintone
ライセンス
ドキュメント
https://github.com/kintone/cli-kintone/blob/main/README.md
注意事項
- cli-kintone を使ってレコードを入出力するには、スタンダードプランの契約が必要です。
- 大量のレコードデータを操作すると、kintone に負荷がかかり、パフォーマンスに影響することがあります。
導入方法
cli-kintone の実行ファイルをダウンロードする
cli-kintone の Windows/macOS/Linux 向けの実行ファイルは、GitHub からダウンロードできます。
-
GitHub の Releases ページ
にアクセスします。
- 「Assets」から実行する環境に合わせてファイルをダウンロードします。
- Windows で実行する場合:
cli-kintone-win.zip
- Linux で実行する場合:
cli-kintone-linux.zip
- macOS で実行する場合:
cli-kintone-macos.zip
- Windows で実行する場合:
- ファイルを解凍し、実行ファイルを任意のディレクトリーに置きます。
Windows ユーザー向け:コマンドプロンプトを起動する
コマンドプロンプトは次の手順で起動します。コマンドプロンプトは、cli-kintone を実行するために必要なツールです。
-
【Win】キーと【R】キーを同時に押します。
「ファイル名を指定して実行」が開きます。 -
「名前」の欄に「cmd」を入力し、【OK】をクリックします。
コマンドプロンプトが起動します。 -
cd コマンドで、cli-kintone.exe を置いたディレクトリーに移動します。
1 2
# デスクトップの「works」ディレクトリーの下に cli-kintone.exe をおいた場合 cd Desktop\works
cli-kintone のバージョンを確認する
cli-kintone のバージョンを表示して、cli-kintone を実行できるかを確認します。
|
|
ダウンロードしたバージョン番号が表示されれば OK です。
使い方
データをエクスポートする
レコードの情報を表示するには、record export
を指定します。
また、次のオプションに、操作する kintone のドメイン名とアプリ ID を指定します。
--base-url
:操作する kintone のドメイン名(例:https://sample.cybozu.com)--app
:アプリ ID(例:123)
API トークンでレコードの情報を表示する
API トークンを使ってレコードの情報を表示するには、--api-token
オプションに API トークンを指定します。
|
|
--api-token
:API トークン(例:BNk5wfOufWtPSTc6miMBTEa0SEm5ZokIcJWSSYXL)
レコードの内容を表示するには、API トークンに「レコード閲覧」のアクセス権が必要です。
API トークンの発行方法は、 API トークンを生成するを参照してください。
コマンドを実行すると、CSV 形式でアプリのレコード情報が表示されます。
項目の見出し名はフィールドコードの値です。
実行例
|
|
CSVファイルにエクスポートする
シェルのリダイレクト機能(>
)を使うと、結果をファイルに出力できます。
実行例
|
|
絞り込み条件やデータの並び順を指定する
--condition
オプションや --order-by
オプションにクエリを指定します。
クエリ記法は、
クエリの書き方 を参照してください。
|
|
--condition
オプション:絞り込み条件のクエリ--order-by
オプション:データの並び順のクエリ
実行例
|
|
添付ファイルをダウンロードする
レコードに添付されたファイルをダウンロードするには、--attachments-dir
オプションに、ダウンロード先のディレクトリー名を指定します。
ディレクトリー名は、実行している場所からの相対パスです。
|
|
--attachments-dir
:添付ファイルのダウンロード先のディレクトリー
実行例
|
|
実行すると、指定したディレクトリー内に作成される次のディレクトリーへ、添付ファイルがダウンロードされます。
作成されるディレクトリー:フィールドコード-レコード番号
|
|
テーブルのデータを表示する
標準機能のファイル書き出し
と同じように、テーブルのデータは、1 レコードの内容が複数行に分かれて表示されます。
ファイルの先頭列の「*」から次の「*」の前までの行が、1 つのレコードのデータです。
実行例
|
|
データをインポートする
レコードを追加または更新するには、record import
を指定します。
また、次のオプションに、操作する kintone のドメイン名とアプリ ID を指定します。
--base-url
:操作する kintone のドメイン名(例:https://sample.cybozu.com)--app
:アプリ ID(例:123)
レコードを追加する
API トークンを使ってレコードを追加するには、--api-token
オプションに API トークンを指定します。
また取り込むファイルは、--file-path
に指定します。
|
|
--api-token
:API トークン(例:BNk5wfOufWtPSTc6miMBTEa0SEm5ZokIcJWSSYXL)
レコードを追加するには、API トークンに「レコード追加」、編集するには「レコード閲覧」「レコード編集」のアクセス権が必要です。
API トークンの発行方法は、 API トークンを生成するを参照してください。
--file-path
:追加するレコードの情報を記載した CSV ファイルのパス
CSV ファイルの 1 行目は、見出し行です。
項目名には、列に対応するフィールドのフィールドコードを指定します。
CSV ファイルの例
|
|
コマンドを実行すると、追加されたレコードの件数が表示されます。
実行例
|
|
一括更新のキーを指定してレコードを追加または更新する
--update-key
オプションに、一括更新のキーとなるフィールドのフィールドコードを指定します。
一括更新のキーに指定できるフィールドは次のとおりです。
- レコード番号
- 「値の重複を禁止する」を有効にした、次のフィールド
- 文字列(1 行)
- 数値
|
|
--update-key
に指定したフィールドと、対応付けられた CSV ファイルの列の値が一致するレコードは、上書きされます。
一致しない場合には、新規にレコードが追加されます。
--update-key
:一括更新のキーとなるフィールドのフィールドコード
コマンドを実行すると、追加/更新されたレコードの件数が表示されます。
実行例
|
|
添付ファイルをアップロードする
ファイルを添付する
添付ファイルをアップロードしてレコードに添付するには、--attachments-dir
オプションにアップロードするファイルを配置したディレクトリーを指定します。
ディレクトリー名は、実行している場所からの相対パスです。
CSV の添付ファイルフィールドの値には、添付するファイルのパスを指定します。
パスは、--attachments-dir
に指定した場所からの相対パスを指定してください。
1 つのフィールドに複数のファイルを指定する場合には、改行区切りで指定します。
CSVの例
|
|
ディレクトリー構成の例
|
|
コマンドを実行すると、追加/更新されたレコードの件数が表示されます。
実行例
|
|
添付済みのファイルを削除する
すでにファイルが添付されているフィールドの添付ファイルを削除する場合には、添付ファイルフィールドの値を空にします。
CSVの例
|
|
実行例
|
|
テーブルのあるレコードを追加または更新する
標準機能のファイル書き出し
と同じように、テーブルのデータごとに、1 レコードの内容を複数行に分けて記載します。
ファイルの先頭列の「*」から次の「*」の前までの行が、1 つのレコードのデータを表します。
ファイルの先頭列は、「*」という項目名にします。
各レコードのデータの開始行の先頭列には「*」を記載し、それ以外は空にします。
CSVの例
|
|
実行例
|
|
データを削除する
警告
record delete
で削除したレコードは元に戻せません。
レコードを削除するには、record delete
を指定します。
record delete
を使ったレコードの削除は、API トークン認証のみ対応しています。
次のオプションに、操作する kintone のドメイン名とアプリ ID、API トークンを指定します。
--base-url
:操作する kintone のドメイン名(例:https://sample.cybozu.com)--app
:アプリ ID(例:123)--api-token
:API トークン(例:BNk5wfOufWtPSTc6miMBTEa0SEm5ZokIcJWSSYXL)
レコードを削除するには、API トークンに「レコード削除」のアクセス権が必要です。
API トークンの発行方法は、 API トークンを生成するを参照してください。
すべてのレコードを削除する
すべてのレコードを削除するには、--file-path
をつけずに削除コマンドを実行します。
|
|
実行例
|
|
一部のレコードを削除する
一部のレコードを削除する場合、削除するレコード番号を記載した CSV ファイルを用意し、 --file-path
で指定します。
--file-path
:削除するレコード番号を記載した CSV ファイルのパス
|
|
CSV ファイルの 1 行目は、見出し行です。
項目名には、レコード番号フィールドのフィールドコードを指定します。
2 行目以降に、削除するレコードのレコード番号、または
アプリコード
を含むレコード番号のいずれか一方を指定します。
CSVの例
|
|
コマンドを実行すると、削除を確認するメッセージが表示されます。
削除する場合は「Y」を入力して、Enter
キーを押します。キャンセルする場合は「n」を入力します。
--yes
または -y
オプションをつけてコマンドを実行すると、削除確認のメッセージが表示されずにレコードを削除できます。
実行例
|
|
オプション一覧
バージョンが v1.0.0 より前の cli-kintone のオプション一覧は、 cli-kintone v0 | オプション一覧 を参照してください。
エクスポート
record export
に続けて --help
オプションを指定して実行すると、エクスポートに関するオプションの一覧が表示されます。
オプション名 | 説明 |
---|---|
--version |
バージョンを表示します。 |
--help |
ヘルプを表示します。 |
--base-url |
必須 操作する kintone のドメイン名です(例:https://sample.cybozu.com) 「https://」始まりで指定します。 |
--app |
必須 操作する kintone のアプリ ID です。 |
--api-token |
条件必須 API トークンです。 API トークンか、ログイン名とパスワードの組み合わせのどちらかが必須です。 複数の API トークンを指定する場合には、 , (半角カンマ)でAPI トークンを区切ります。例: --api-token "BNk5wfOufWtPSTc6miMBTEa0SEm5ZokIcJWSSYXL,WjfkaoKncXlXFqIY0lLwfv8FZELUkv8YnZRnV104" |
--username |
条件必須 kintone のログイン名です。 API トークンか、ログイン名とパスワードの組み合わせのどちらかが必須です。 -u のエイリアスも利用できます。 |
--password |
条件必須 kintone のパスワードです。 API トークンか、ログイン名とパスワードの組み合わせのどちらかが必須です。 -p のエイリアスも利用できます。 |
--attachments-dir |
添付ファイルフィールドのファイルをダウンロードする場合、添付ファイルを出力するディレクトリーのパスを指定します。 |
--condition |
レコードの絞り込み条件のクエリを指定します。 クエリ記法は、 クエリの書き方 を参照してください。 |
--order-by |
レコードの並び順のクエリを指定します。 クエリ記法は、 クエリの書き方 を参照してください。 |
--fields |
特定のフィールドだけをエクスポートする場合は、エクスポートするフィールドのフィールドコードを , (半角カンマ)区切りで指定します。たとえば「JoinDate」「Division」の項目だけをエクスポートしたい場合は --fields "JoinDate,Division" を指定します。テーブル内のフィールドは指定できません。 テーブルを出力する場合はテーブルフィールドのフィールドコードを指定します。テーブル内のフィールドがすべて出力されます。 |
--basic-auth-username |
Basic 認証
|
--basic-auth-password |
Basic 認証
|
--guest-space-id |
ゲストスペース内のアプリを操作する場合、ゲストスペース ID を指定します。 |
--encoding |
エクスポートするデータの文字コードです。初期値は「UTF-8」です。
|
--pfx-file-path |
セキュアアクセス
|
--pfx-file-password |
セキュアアクセス
|
--proxy |
プロキシサーバー経由で実行する場合は、プロキシサーバーの URL とポート番号を指定します。 「http://」または「https://」始まりで指定します。 ユーザー認証が必要なプロキシ接続には対応していません。 |
インポート
record import
に続けて --help
オプションを指定して実行すると、インポートに関するオプションの一覧が表示されます。
オプション名 | 説明 |
---|---|
--version |
バージョンを表示します。 |
--help |
ヘルプを表示します。 |
--base-url |
必須 操作する kintone のドメイン名です(例:https://sample.cybozu.com) 「https://」始まりで指定します。 |
--app |
必須 操作する kintone のアプリ ID です。 |
--api-token |
条件必須 API トークンです。 API トークンか、ログイン名とパスワードの組み合わせのどちらかが必須です。 複数の API トークンを指定する場合には、 , (半角カンマ)でAPI トークンを区切ります。例: --api-token "BNk5wfOufWtPSTc6miMBTEa0SEm5ZokIcJWSSYXL,WjfkaoKncXlXFqIY0lLwfv8FZELUkv8YnZRnV104" |
--username |
条件必須 kintone のログイン名です。 API トークンか、ログイン名とパスワードの組み合わせのどちらかが必須です。 -u でも指定できます。 |
--password |
条件必須 kintone のパスワードです。 API トークンか、ログイン名とパスワードの組み合わせのどちらかが必須です。 -p でも指定できます。 |
--update-key |
レコードの一括更新のキーとなる、フィールドのフィールドコードです。 次のフィールドを指定できます。
|
--file-path |
必須 インポートするファイルのパスです。 拡張子が .csv のファイルのみ対応しています。 |
--attachments-dir |
添付ファイルフィールドにファイルを添付する場合、添付ファイルを配置したディレクトリーのパスを指定します。 |
--fields |
ファイルの項目を限定してインポートする場合に、対象の項目に対応するフィールドのフィールドコードを , (半角カンマ)区切りで指定します。たとえば、ファイル内の「JoinDate」「Division」の項目だけをインポートしたい場合は --fields "JoinDate,Division" を指定します。 |
--basic-auth-username |
Basic 認証
|
--basic-auth-password |
Basic 認証
|
--guest-space-id |
ゲストスペース内のアプリを操作する場合、ゲストスペース ID を指定します。 |
--encoding |
インポートするファイルの文字コードです。初期値は「UTF-8」です。
|
--pfx-file-path |
セキュアアクセス
|
--pfx-file-password |
セキュアアクセス
|
--proxy |
プロキシサーバー経由で実行する場合は、プロキシサーバーの URL とポート番号を指定します。 「http://」 または「https://」始まりで指定します。 ユーザー認証が必要なプロキシ接続には対応していません。 |
レコード削除
record delete
に続けて --help
オプションを指定して実行すると、削除に関するオプションの一覧が表示されます。
オプション名 | 説明 |
---|---|
--version |
バージョンを表示します。 |
--help |
ヘルプを表示します。 |
--base-url |
必須 操作する kintone のドメイン名です(例:https://sample.cybozu.com) 「https://」始まりで指定します。 |
--app |
必須 操作する kintone のアプリ ID です。 |
--api-token |
必須 API トークンです。 |
--file-path |
削除するレコードの情報を記載したファイルのパスです。 拡張子が .csv のファイルのみ対応しています。 |
--yes |
削除を確認するメッセージを表示せずにレコードを削除します。-y のエイリアスも利用できます。 |
--basic-auth-username |
Basic 認証
|
--basic-auth-password |
Basic 認証
|
--guest-space-id |
ゲストスペース内のアプリを操作する場合、ゲストスペース ID を指定します。 |
--encoding |
削除するデータの文字コードです。初期値は「UTF-8」です。
|
--pfx-file-path |
セキュアアクセス
|
--pfx-file-password |
セキュアアクセス
|
--proxy |
プロキシサーバー経由で実行する場合は、プロキシサーバーの URL とポート番号を指定します。 「http://」または「https://」始まりで指定します。 ユーザー認証が必要なプロキシ接続には対応していません。 |
制限事項
フィールドに関する制限
- 次のフィールドは、レコードを追加するときのみ、CSV ファイルの内容を反映できます。
「アプリの管理権限」を付与した API トークン、またはユーザーのアカウントを使って実行してください。- 作成者
- 作成日時
- 更新者
- 更新日時
- 次のフィールドはエクスポートできません。
- ステータス
- 作業者
- カテゴリー
- 次のフィールドにインポートしても値は登録・更新されません。
- ルックアップ元からコピーされるフィールド
- 計算
- 自動計算が設定されている文字列(1 行)フィールド
- ステータス
- 作業者
- カテゴリー
その他の制限
- IP アドレス制限を設定している場合には、次のどちらかの方法で実行してください。
- 実行する環境の IP アドレスからのアクセスを許可する。
IP アドレス制限の設定方法 - ユーザー認証を使って、セキュアアクセスを設定したユーザーのクライアント証明書を指定する。
セキュアアクセスを設定する
- 実行する環境の IP アドレスからのアクセスを許可する。
更新履歴
cli-kintone の最新の更新内容は、
Change Log
を参照してください。
- 2022 年 10 月 1 日:記事を公開しました。
- 2023 年 3 月 2 日:v1.3.0 で追加された削除コマンドについて追記しました。
旧バージョン(v0)との機能差異について
v1.0.0 以降の cli-kintone では、
レコードデータの追加や更新を同時に行う機能の強化 や、セキュアアクセス対応などを実施しています。
バージョンが v1.0.0 より前(v0.x.x)の cli-kintone との機能差異は、次のページを参照してください。
cli-kintone の旧バージョン(v0)との機能差異
この記事で紹介しているサンプルコードは、2022 年 9 月版 kintone および cli-kintone Version 1.0.0 で動作を確認しています。
cli-kintone へのフィードバック
機能に対する要望や質問は、GitHub Issue でも受け付けています。