ここでは、APIを使用して、アプリの作成およびアプリの設定変更を行う方法を説明します。同じ設定を大量のアプリに適用するようなケースでは、APIを使用することで、効率よく設定を適用できます。
アプリの作成と設定変更の流れ
アプリの作成、および設定の変更は、次の流れで行います。
既存のアプリの設定を変更する場合は、Step 1は不要です。Step 2と3のみ行います。
Step 1 |
動作テスト環境にアプリを作成する アプリを作成します。このステップは、新しくアプリを作成する場合のみ必要です。 |
Step 2 |
アプリを設定する アプリに必要な設定を行います。 |
Step 3 |
運用環境にアプリの設定を反映する アプリの設定を完了し、運用環境にアプリの設定を反映します。この処理は、kintoneのアプリ設定画面で[設定完了]をクリックする操作に相当します。 |
Step 1 動作テスト環境にアプリを作成する
アプリを作成します。このステップは、新しくアプリを作成する場合のみ必要です。
アプリは動作テスト環境で作成されます。Step 3で運用環境に設定を反映するまでは、作成したアプリは使用できません。
※動作テスト環境とは、アプリがデプロイされる前に一時的にアプリの情報が保存される場所を指します。
URI
https://(サブドメイン名).cybozu.com/k/v1/preview/app.json
ゲストスペースのアプリの場合:https://(サブドメイン名).cybozu.com/k/guest/(スペースのID)/v1/preview/app.json
※このAPIの実行は、APIリクエスト数としてカウントされません。
HTTPメソッド
POST
必要なアクセス権
アプリの作成権限
※このAPIの実行には、APIトークンは使用できません。
リクエストパラメータ
パラメータ名 | 指定する値 | 必須 | 説明 |
---|---|---|---|
name | 文字列 | 必須 | アプリの名前を64文字以内で指定します。 |
space | 数値 | スペースのスレッドにアプリを作成する場合に、スペースのIDを指定します。 | |
thread | 数値 | スペースのスレッドにアプリを作成する場合に、スレッドのIDを指定します。 |
リクエストの例
ヘッダ
POST /k/v1/preview/app.json HTTP/1.1 Host: example.cybozu.com:443 X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU= Content-Type: application/json
ボディ
- レコード番号
- 作成者
- 更新者
- 作成日時
- 更新日時
- ステータス
- 作業者
- カテゴリー
Accept-Languageヘッダがあればその設定が反映され、Accept-Languageヘッダがなければcybozu.com共通管理の「ローカライズの設定」で設定された言語で取得されます。
レスポンスパラメータ
パラメータ名 | 値の種類 | 説明 |
---|---|---|
app | 文字列 | 作成されたアプリのIDです。 |
revision | 文字列 | 作成されたアプリのリビジョン番号です。 |
レスポンスの例
JavaScriptサンプル
XMLHttpRequest
Step 2 アプリを設定する
アプリに必要な設定を適用します。
アプリの設定を変更する方法は、以下のそれぞれのページを参照してください。
- 一般設定の変更
- フォームの設定の変更
- 一覧の設定の変更
- アプリのアクセス権の変更
- アプリのプロセス管理の設定の変更
- レコードのアクセス権の変更
- フィールドのアクセス権の変更
- JavaScript / CSSカスタマイズ設定の変更
Step 3 運用環境にアプリの設定を反映する
アプリの設定を完了し、運用環境にアプリの設定を反映します。
アプリの設定の運用環境への反映
これで、アプリの設定は完了です。
Step2 アプリを設定するに関して一点質問があります。
現在アプリ設定のバックアップ(各種設定を取得し、まとまったJSONを作成)をとり、設定が変更された場合でもリストア(まとまったJSONから元の設定を反映)できるような仕組みを作っています。
フォームの設定の変更の部分で、もしフィールドコードがバックアップをとったあとに変更された場合、その後リストアしようとすると設定の反映対象のフィールドコードが存在しないためエラーが出てしまいます。
この問題を解決する方法はありますか?
荻野 隼 様
変更されたフィールドが一つだけであれば、バックアップしたデータとフォームを比較することで特定して、
バックアップしたJSONデータ側で該当フィールドコードを変更することができるが、
一つ以上変更されたりフィールドが追加されたりすると難しいかと思います。
役立たず申し訳ございません。
また、こちらは記事に対するフィードバックの欄となっておりますため、
記事の内容の発展などのご質問は、大変お手数ですcybozu developer コミュニティにお願いできますでしょうか。
cybozu developer コミュニティほうが多くの方がご覧になっているため、アドバイスも得やすいかと思います
回答ありがとうございます。
コミュニティの方でも質問してみます。お手数をおかけしました。