kintoneコマンドラインツール(cli-kintone)
cli-kintoneとは
kintoneコマンドラインツール(cli-kintone)は、コマンドでkintoneのレコード情報をCSVファイル(Excelで開くことができるデータ)で入出力できるツールです。
コマンドラインツールとして提供されているため、シェルスクリプトファイルから呼び出して実行できます。
レコード情報の入出力だけでなく、kintoneの画面からレコードを一括登録・更新する機能ではできない、次の操作もできます。
- 一括でレコードの添付ファイルをダウンロードする。
- 一括で添付ファイルをレコードに添付する。
- 一括で添付ファイルを削除する。
詳細については、 添付ファイルをダウンロード・アップロード・削除してみよう を参照してください。
この記事では、cli-kintoneの基本的な使い方を説明しています。
バージョンがv1.0.0より前のcli-kintoneの使い方は、次のページを参照してください。
kintoneコマンドラインツール(cli-kintone v0)
実行例ではWindowsのコマンドプロンプトを使って説明しています。
ほかの環境で実行する場合には、適宜パスやファイル名を読み替えてください。
この記事では、cli-kintoneの基本的な使い方を説明しています。
詳しい使い方や活用方法を知りたい場合は、次のチュートリアルを参照してください。
はじめようcli-kintone
サポート方針
cli-kintoneは、運用環境で利用することを想定して、サイボウズ社が開発、提供しています。
バージョンがv1.0.0以降のcli-kintoneの仕様の確認やトラブルに関する質問は、APIサポート窓口に問い合わせ可能です。
問い合わせ方法は、次のページを確認してください。
サポートへのお問い合わせ方法
ソースコードの変更、再配布および商用利用等は、ライセンスにしたがって利用できます。
ライセンスの種別は各クライアントライブラリのページまたはGitHubのリポジトリで確認してください。
ただし、ソースコードを変更していることに起因して発生したトラブルは、サポート対象外です。
GitHub
https://github.com/kintone/cli-kintone
ライセンス
ドキュメント
注意事項
- 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
オプションにクエリを指定します。
クエリ記法は、次のページを参照してください。
cli-kintoneでのクエリの書き方
|
|
--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つのフィールドに複数のファイルを指定する場合には、改行区切りで指定します。
1ファイルの最大容量は1GBです。
CSVの例
|
|
ディレクトリ構成の例
|
|
コマンドを実行すると、追加/更新されたレコードの件数が表示されます。
実行例
|
|
添付済みのファイルを削除する
すでにファイルが添付されているフィールドの添付ファイルを削除する場合には、添付ファイルフィールドの値を空にします。
CSVの例
|
|
実行例
|
|
テーブルのあるレコードを追加または更新する
標準機能のファイル書き出しと同じように、テーブルのデータごとに、1レコードの内容を複数行に分けて記載します。
ファイルの先頭列の「*」から次の「*」の前までの行が、1つのレコードのデータを表します。
ファイルの先頭列は、「*」という項目名にします。
各レコードのデータの開始行の先頭列には「*」を記載し、それ以外は空にします。
注意
既存のレコードのテーブルを更新する場合の注意点
- データを変更しないテーブルの行があっても、CSVファイルにはすべての行データを記載してください。
ファイルに記載していない行データは削除されます。 - データを更新しないテーブルのフィールドがあるときは、次のどちらかを行ってください。
行わない場合、ファイルに記載されていないテーブルのフィールドの値は空になります。- 行のIDを記載する。
行のIDは、record export
を使ってテーブルのデータを表示したときのテーブルフィールドの値で確認できます。 - テーブルに含まれるすべてのフィールドのデータを記載する。
- 行のIDを記載する。
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 |
レコードの絞り込み条件のクエリを指定します。 クエリ記法は、次のページを参照してください。 cli-kintoneでのクエリの書き方|絞り込み条件 |
--order-by |
レコードの並び順のクエリを指定します。 クエリ記法は、次のページを参照してください。 cli-kintoneでのクエリの書き方|並び順 |
--fields |
特定のフィールドだけをエクスポートする場合は、エクスポートするフィールドのフィールドコードを, (半角カンマ)区切りで指定します。たとえば「JoinDate」「Division」の項目だけをエクスポートしたい場合は --fields "JoinDate,Division" を指定します。テーブル内のフィールドは指定できません。 テーブルを出力する場合はテーブルフィールドのフィールドコードを指定します。テーブル内のフィールドがすべて出力されます。 |
--basic-auth-username |
Basic認証を設定している場合、Basic認証のユーザー名を指定します。 Basic認証の詳細は、次のページを参照してください。 Basic認証 |
--basic-auth-password |
Basic認証を設定している場合のBasic認証のパスワードを指定します。 |
--guest-space-id |
ゲストスペース内のアプリを操作する場合、ゲストスペースIDを指定します。 |
--encoding |
エクスポートするデータの文字コードです。初期値は「utf8」です。
|
--pfx-file-path |
セキュアアクセスを設定している場合は、クライアント証明書ファイルのパスを指定します。 セキュアアクセスの詳細は、次のページを参照してください。 セキュアアクセス |
--pfx-file-password |
セキュアアクセスを設定している場合は、クライアント証明書ファイルのパスワードを指定します。 |
--proxy |
プロキシサーバー経由で実行する場合は、プロキシサーバーのアドレスとポート番号を指定します。 「http://」または「https://」始まりで指定します。 プロキシサーバーでユーザー認証が必要な場合、プロキシサーバーのアドレスの前に「ユーザー名:パスワード@」の形式で認証情報を指定します。 例: --proxy http://ユーザー名:パスワード@プロキシサーバーのアドレス:ポート番号 |
インポート
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認証のユーザー名を指定します。 Basic認証の詳細は、次のページを参照してください。 Basic認証 |
--basic-auth-password |
Basic認証を設定している場合のBasic認証のパスワードを指定します。 |
--guest-space-id |
ゲストスペース内のアプリを操作する場合、ゲストスペースIDを指定します。 |
--encoding |
インポートするファイルの文字コードです。初期値は「utf8」です。
|
--pfx-file-path |
セキュアアクセスを設定している場合は、クライアント証明書ファイルのパスを指定します。 セキュアアクセスの詳細は、次のページを参照してください。 セキュアアクセス |
--pfx-file-password |
セキュアアクセスを設定している場合は、クライアント証明書ファイルのパスワードを指定します。 |
--proxy |
プロキシサーバー経由で実行する場合は、プロキシサーバーのアドレスとポート番号を指定します。 「http://」または「https://」始まりで指定します。 プロキシサーバーでユーザー認証が必要な場合、プロキシサーバーのアドレスの前に「ユーザー名:パスワード@」の形式で認証情報を指定します。 例: --proxy http://ユーザー名:パスワード@プロキシサーバーのアドレス:ポート番号 |
レコード削除
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認証のユーザー名を指定します。 Basic認証の詳細は、次のページを参照してください。 Basic認証 |
--basic-auth-password |
Basic認証を設定している場合のBasic認証のパスワードを指定します。 |
--guest-space-id |
ゲストスペース内のアプリを操作する場合、ゲストスペースIDを指定します。 |
--encoding |
削除するデータの文字コードです。初期値は「utf8」です。
|
--pfx-file-path |
セキュアアクセスを設定している場合は、クライアント証明書ファイルのパスを指定します。 セキュアアクセスの詳細は、次のページを参照してください。 セキュアアクセス |
--pfx-file-password |
セキュアアクセスを設定している場合は、クライアント証明書ファイルのパスワードを指定します。 |
--proxy |
プロキシサーバー経由で実行する場合は、プロキシサーバーのアドレスとポート番号を指定します。 「http://」または「https://」始まりで指定します。 プロキシサーバーでユーザー認証が必要な場合、プロキシサーバーのアドレスの前に「ユーザー名:パスワード@」の形式で認証情報を指定します。 例: --proxy http://ユーザー名:パスワード@プロキシサーバーのアドレス:ポート番号 |
制限事項
フィールドに関する制限
- 次のフィールドは、レコードを追加するときのみ、CSVファイルの内容を反映できます。
「アプリの管理権限」を付与したAPIトークン、またはユーザーのアカウントを使って実行してください。- 作成者
- 作成日時
- 更新者
- 更新日時
- 次のフィールドはエクスポートできません。
- ステータス
- 作業者
- カテゴリー
- 関連レコード
- 次のフィールドにインポートしても値は登録・更新されません。
- ルックアップ元からコピーされるフィールド
- 計算
- 自動計算が設定されている文字列(1行)フィールド
- ステータス
- 作業者
- カテゴリー
- 関連レコード
その他の制限
- IPアドレス制限を設定している場合には、次のどちらかの方法で実行してください。
- 実行する環境のIPアドレスからのアクセスを許可する。
IPアドレス制限の設定方法 - ユーザー認証を使って、セキュアアクセスを設定したユーザーのクライアント証明書を指定する。
セキュアアクセスを設定する
- 実行する環境のIPアドレスからのアクセスを許可する。
更新履歴
cli-kintoneの最新の更新内容は、次のページを参照してください。
Change Log
- 2022年10月1日:記事を公開しました。
- 2023年3月2日:v1.3.0で追加された削除コマンドについて追記しました。
- 2023年5月1日:v1.4.0で対応した、プロキシ接続のユーザー認証について追記しました。
旧バージョン(v0)との機能差異について
v1.0.0以降のcli-kintoneでは、次のような対応を実施しています。
- レコードデータの追加や更新を同時に行う機能の強化
- セキュアアクセス対応
バージョンがv1.0.0より前(v0.x.x)のcli-kintoneとの機能差異は、次のページを参照してください。
cli-kintoneの旧バージョン(v0)との機能差異
cli-kintoneへのフィードバック
機能に対する要望や質問は、GitHub Issueでも受け付けています。
この記事で紹介しているサンプルコードは、2022年9月版kintoneおよびcli-kintone Version 1.0.0で動作を確認しています。