kintoneプラグイン開発手順
はじめに
kintoneでは、「プラグイン」を利用して、JavaScriptカスタマイズと同等の機能拡張や他サービスとの連携を実現できます。
通常のカスタマイズではアプリに合わせてJavaScriptファイルを編集する必要がありますが、プラグインを使うと、プラグインの設定画面でそれぞれのアプリに合わせた設定ができます。
プラグインは、kintoneをカスタマイズするためのJavaScriptやCSSファイルをパッケージングしたものです。
この記事では、プラグインの作成手順とkintoneへのインストール方法について説明します。
kintoneプラグインを作成する方法の詳細は、チュートリアルを参照してください。
はじめようkintoneプラグイン
プラグイン作成の流れ
プラグイン作成の手順は、以下のとおりです。
- プラグイン作成に必要なファイル(JavaScript, CSSファイルなど)を準備します。
- マニフェストファイル(manifest.json)を作成します。
- パッケージツール(plugin-packer)を利用して、プラグイン作成に必要なファイルをパッケージングします。
- 作成したプラグインファイルをkintone環境にインストールします。
プラグイン作成に必要なファイルの準備
パッケージングするファイルを準備します。
パッケージングするファイルのディレクトリ構成およびファイル名は自由です。
以下は一例です。
アイコンファイル
プラグイン一覧、プラグイン設定画面で表示されるプラグインアイコン用のファイルです。
- 必須ファイルです。
- 利用可能なファイルタイプは、png/jpg/gif/bmpのいずれかです。
- ファイルサイズの上限値は、20MBです。
PC用JavaScriptファイル
PC画面用のJavaScriptファイルです。
- モバイル専用のプラグインの場合、省略可能です。
- 設定画面で設定した情報を使い、実装したい処理を記述します。
- 設定画面用のJavaScriptファイルで
プラグインの設定情報を保存するAPI
を利用して設定した情報は、
プラグインの設定情報を取得するAPI
を利用して取得します。
このとき必要なプラグインIDは、kintone.$PLUGIN_ID
という変数に出力されます。
プラグインIDは、プラグイン作成時に各プラグインへ一意に割り当てられる32桁のIDです。
例:faabchdodajloackbgnipilddblmkejp - ファイルサイズの上限値は、20MBです。
プラグインIDの参照例
1アプリで複数のプラグインを利用する場合、kintone.$PLUGIN_ID
は複数回代入されます。
そのため、以下のように即時実行関数でプラグインIDを補足して利用してください。
|
|
PC用CSSファイル
PC画面用のCSSファイルです。
- モバイル専用のプラグインの場合、省略可能です。
- kintoneのデザインに合わせたい場合は、 51-modern-default を利用してください。
- ファイルサイズの上限値は、20MBです。
モバイル用JavaScriptファイル
モバイル用のJavaScriptファイルです。
- モバイルでプラグインを利用しない場合、省略可能です。
- 設定画面から設定した情報を使い、実装したい処理を記述します。
- 設定画面用のJavaScriptファイルで
プラグインの設定情報を保存するAPI
を利用して設定した情報は、
プラグインの設定情報を取得するAPI
を利用して取得します。
このとき必要なプラグインIDの参照方法は、 プラグインIDの参照例 を参照してください。 - ファイルサイズの上限値は、20MBです。
モバイル用CSSファイル
モバイル画面用のCSSファイルです。
- モバイルでプラグインを利用しない場合、省略可能です。
- ファイルサイズの上限値は、20MBです。
設定画面用JavaScriptファイル
設定画面用のJavaScriptファイルです。
- 省略可能です。
- プラグインIDの参照方法は、 プラグインIDの参照例 を参照してください。
- プラグインの設定情報を保存するAPI を利用して、プラグインの設定値を保存できます。
- ファイルサイズの上限値は、20MBです。
- プラグイン設定画面を開いた際に実行されるJavaScriptファイルです。
設定画面用CSSファイル
設定画面用のCSSファイルです。
- 省略可能です。
- kintoneのデザインに合わせたい場合は、 51-modern-default を利用してください。
- ファイルサイズの上限値は、20MBです。
- プラグイン設定画面に対し適用されるCSSファイルです。
設定画面用HTMLファイル
設定画面用のHTMLファイルです。
- 省略可能です。
- ファイルサイズの上限値は、64KBです。
- 下図の赤枠部分を構成するHTMLファイルです。
マニフェストファイルの作成
マニフェストファイル(manifest.json
)を作成します。
マニフェストファイルは、プラグイン作成に必要なファイル情報をまとめた設定ファイルです。
このファイルは、kintoneプラグイン作成に必須です。
マニフェストファイルのフォーマット
マニフェストファイルは、JSON形式のファイルです。
各パラメーターの詳細は以下のとおりです。
パラメーター名 | 型 | 必須 | 説明 | 制限 | 指定例 |
---|---|---|---|---|---|
type | 文字列 | 必須 | プラグインの種類 「APP」を指定してください。 |
なし | "type": "APP" |
manifest_version | 数値 | 必須 | プラグインのマニフェストバージョン 「1」を指定してください。 |
なし | "manifest_version": 1 |
version | 数値 または 文字列 |
必須 | プラグインのバージョン 数値を指定する場合は整数のみです。 文字列を指定する場合、「x」「x.y」「x.y.z」の形式のみです。 |
なし | 数値の場合"version": 1文字列の場合 "version": "1.0" "version": "1.0.0" |
name | オブジェクト | 必須 | ロケール をキーとする各言語のプラグイン名 | なし | "name": { |
name.<locale> | 文字列 | 必須 | 指定されたロケールのプラグイン名 | 1文字以上64文字以下name.en は必須です。 |
|
description | オブジェクト | 省略可 |
ロケール
をキーとする各言語の説明文 プラグイン一覧での説明文として表示されます。 |
なし | "description": { |
description.<locale> | 文字列 | 必須 | 指定されたロケールの説明文 | 1文字以上200文字以下 descriptionがある場合、 description.en は必須です。 |
|
icon | 文字列 | 必須 | プラグインのアイコンファイル プラグイン一覧画面とプラグイン設定画面で表示されます。 |
プラグイン内のファイルのみ指定可能です。 | "icon": "image/icon.png" |
homepage_url | オブジェクト | 省略可 |
ロケール
をキーとするWebサイトURL プラグイン一覧のプラグイン名横にナビゲーションアイコンが追加されます。 アイコンをクリックすると、指定したWebサイトに遷移します。 name パラメーターに指定したロケールと一致するロケールがある場合のみ、アイコンが表示されます。 |
なし | "homepage_url": { |
homepage_url.<locale> | 文字列 | 省略可 | 指定されたロケールのWebサイトURL | なし | |
desktop | オブジェクト | 省略可 | ファイルの種類 (js/css)をキーとするPC用カスタマイズファイル | なし | "desktop": { |
desktop.js | 配列(文字列) | 省略可 | PC用JavaScriptファイル URLの配列 |
30個まで 同一名のファイルがある場合、エラーになります。 |
|
desktop.css | 配列(文字列) | 省略可 | PC用CSSファイル URLの配列 |
30個まで 同一名のファイルがある場合、エラーになります。 |
|
mobile | オブジェクト | 省略可 | ファイルの種類(js)をキーとするモバイル用カスタマイズファイル | なし | "mobile": { |
mobile.js | 配列(文字列) | 省略可 | モバイル用JavaScriptファイル URLの配列 |
30個まで 同一名のファイルがある場合、エラーになります。 |
|
mobile.css | 配列(文字列) | 省略可 | モバイル用CSSファイル URLの配列 |
30個まで 同一名のファイルがある場合、エラーになります。 |
|
config | オブジェクト | 省略可 | ファイルの種類 (js/css/html) をキーとする設定画面用カスタマイズファイルと設定情報 | なし | "config": { |
config.html | 文字列 | 省略可 | 設定画面用HTMLファイル | プラグイン内のファイルのみ指定可能 | |
config.js | 配列(文字列) | 省略可 | 設定画面用JavaScriptファイル URLの配列 |
30個まで 同一名のファイルがある場合、エラーになります。 |
|
config.css | 配列(文字列) | 省略可 | 設定用CSSファイル URLの配列 |
30個まで 同一名のファイルがある場合、エラーになります。 |
|
config.required_params | 配列(文字列) | 省略可 | 設定画面で設定必須とするパラメーターの配列 | ASCIIで1文字以上64文字以下 |
指定できるロケール
ロケールには、次の言語コードを指定できます。
ja
:日本語en
:英語zh
:中国語(簡体字)es
:スペイン語
マニフェストファイルの例
|
|
プラグインに必要なファイルのパッケージング
「plugin-packer」を利用してプラグインに必要なファイルをパッケージングし、プラグインファイルを生成します。
plugin-packerとは
plugin-packerは、プラグイン作成で必要なファイルをzipファイルにパッケージングするCLIツールです。
plugin-packerの詳細は、
plugin-packer
を参照してください。
このツールを利用するには、Node.jsが必要です。
Node.jsのインストーラーは、
Node.js公式サイト
より入手してください。
必要なNode.jsのバージョンの確認方法は、
plugin-packer | 下準備
を参照してください。
インストール方法
以下のコマンドを実行し、plugin-packerをインストールします。
|
|
パッケージ手順
以下の手順で、プラグインファイルをパッケージングします。
-
マニフェストファイルに沿って、作成した各ファイルとマニフェストファイルを配置します。
-
パッケージングしたいファイルをまとめたディレクトリ(src)の、ひとつ上のディレクトリに移動します。
上記のファイル配置例の場合、「work」に移動します。1
cd work
-
次のコマンドを実行すると、自動でパッケージングが開始されます。
実行に成功すると、成功メッセージが表示されます。1 2 3
$ kintone-plugin-packer src Succeeded: DIRECTORY_PATH/work/plugin.zip
-
実行したディレクトリに、プラグインファイル(plugin.zip)と秘密鍵ファイル(ppkファイル)が生成されます。
秘密鍵ファイルのファイル名は、プラグインIDと同じです。
次の例では、プラグインIDが「faabchdodajloackbgnipilddblmkejp」です。秘密鍵ファイルは、2回目以降のパッケージングで利用します。なくさないでください。
2回目以降のパッケージング
2回目以降のパッケージングは、--ppk
オプションを使って、1回目のパッケージングで生成された秘密鍵ファイルを指定します。
同じ秘密鍵ファイルを使ってパッケージングすると、プラグインIDは同じになります。
|
|
プラグインファイルの出力先ディレクトリを変更したい場合や、ファイル監視しながらパッケージングしたい場合など、その他の機能については、 plugin-packer REAMEのOptions を参照してください。
kintone環境へのインストール
作成したプラグインファイルをkintoneへインストールします。
-
「kintoneシステム管理」を開きます。
-
「その他」の「プラグイン」をクリックします。
-
「読み込む」ボタンをクリックします。
-
「参照」ボタンをクリックし、パッケージ手順4. で生成したプラグインファイル(plugin.zip)を選択します。
-
「読み込む」ボタンをクリックします。
-
「インストールされたプラグイン」に、作成したプラグインが表示されれば成功です。
補足
- インストールできるプラグインファイルのサイズ上限値は、100MBです。
- 同じプラグインIDをもつプラグインファイルをアップロードすると、自動的に上書きインストールされます。
そのプラグインを利用しているアプリにも即時適用されます。 - アプリに複数のプラグインを適用する場合、プラグイン同士が競合し、意図しない挙動をすることがあります。
運用に支障がないことを検証したうえで、プラグインを適用してください。
おわりに
今回は、パッケージツール(plugin-packer)を利用したkintoneプラグインの作成手順と、kintoneへのインストール方法について説明しました。
プラグインを使うと、kintoneカスタマイズの内容を簡単に複数のアプリへ適用できます。
プラグインファイルのパッケージング手順も簡単なので、ぜひプラグイン作成に挑戦してみてください。
このTipsは、2019年1月版kintoneで動作を確認しています。