fbpx
「給与DXのエムザス」 給与とシステム両方を本業に約20年

JavaScriptでkintone REST APIを使ってアプリ設定を自動化する方法

公開日:2025.03.03
最終更新日:2025.03.03

1. はじめに

kintoneのアプリ設定を手動で更新するのは時間がかかりますが、REST APIを使えば簡単に自動化できます。このブログでは、JavaScriptを使ってkintoneのアプリ設定を取得・更新する方法を解説します。

🌟プラグイン無料お試しのお知らせ🌟

kintoneユーザーの皆さん!
エムザスのkintoneプラグインはもう試しましたか?🤔
エムザスでは以下のようなプラグインを開発しています!👇

EMレポ - レコードの内容をPDF / Excelに出力できるプラグイン
EMレポのプラグイン画像
EMsheet - kintoneのレコードをExcelのように表示して編集できるプラグイン
EMsheetのプラグイン画像
EMdocMaker - アプリの関連図や定義書を出力し、アプリの分析ができるプラグイン
EMdocMakerのプラグイン画像
       
EMログ - 標準の監査ログでは取得できないアプリの操作ログを取得できるプラグイン
EMログのプラグイン画像
   
 
 
 

 

デモ環境で、ほとんどの機能が今すぐお試しいただけます✨

 

さらに、お客様のドメインで無料で3ヶ月間、すべての機能を試すこともできます!🎉

\たった1分で申し込み完了!/

それでは、本題に入ります!


2. 前提条件

  • kintoneのアプリ管理者権限
  • APIトークンの取得
  • Node.js環境(またはブラウザでの実行環境)

3. 必要なAPIエンドポイント

  • 設定取得GET /k/v1/app/form/fields.json
  • 設定更新PUT /k/v1/preview/app/form/fields.json
  • デプロイPOST /k/v1/preview/app/deploy.json

4. サンプルコード

以下は、Node.jsを使ってkintoneのアプリ設定を取得し、更新するサンプルコードです。

4.1 ライブラリのインストール

まず、axiosライブラリをインストールします。

npm install axios

4.2 設定を取得するコード

const axios = require('axios');

const SUBDOMAIN = 'your-subdomain'; // kintoneのサブドメイン
const APP_ID = 1; // アプリID
const API_TOKEN = 'your-api-token'; // APIトークン

const getAppSettings = async () => {
    const url = `https://${SUBDOMAIN}.cybozu.com/k/v1/app/form/fields.json?app=${APP_ID}`;
    const headers = {
        'X-Cybozu-API-Token': API_TOKEN,
    };

    try {
        const response = await axios.get(url, { headers });
        console.log('アプリ設定:', response.data);
        return response.data;
    } catch (error) {
        console.error('エラーが発生しました:', error.response.data);
    }
};

getAppSettings();

4.3 設定を更新するコード

const updateAppSettings = async (fields) => {
    const url = `https://${SUBDOMAIN}.cybozu.com/k/v1/preview/app/form/fields.json?app=${APP_ID}`;
    const headers = {
        'X-Cybozu-API-Token': API_TOKEN,
        'Content-Type': 'application/json',
    };

    try {
        const response = await axios.put(url, { app: APP_ID, properties: fields }, { headers });
        console.log('更新成功:', response.data);
    } catch (error) {
        console.error('エラーが発生しました:', error.response.data);
    }
};

// 例: 新しいフィールドを追加
const newFields = {
    '新しいフィールド': {
        type: 'SINGLE_LINE_TEXT',
        label: '新しいフィールド',
        code: 'new_field',
    },
};

// 既存の設定を取得し、新しいフィールドを追加
getAppSettings().then((currentSettings) => {
    const updatedFields = { ...currentSettings.properties, ...newFields };
    updateAppSettings(updatedFields);
});

4.4 プレビュー環境から本番環境にデプロイ

const deployApp = async () => {
    const url = `https://${SUBDOMAIN}.cybozu.com/k/v1/preview/app/deploy.json`;
    const headers = {
        'X-Cybozu-API-Token': API_TOKEN,
        'Content-Type': 'application/json',
    };
    const data = {
        apps: [{ app: APP_ID }],
        revert: false,
    };

    try {
        const response = await axios.post(url, data, { headers });
        console.log('デプロイ成功:', response.data);
    } catch (error) {
        console.error('エラーが発生しました:', error.response.data);
    }
};

deployApp();

5. コードの解説

  • 設定取得getAppSettings関数で現在のアプリ設定を取得します。
  • 設定更新updateAppSettings関数で新しいフィールドを追加します。
  • デプロイdeployApp関数でプレビュー環境の変更を本番環境に反映します。

6. よくあるエラーと対処法

  • 403エラー: APIトークンや権限を確認してください。
  • 400エラー: リクエストボディのフォーマットが正しいか確認してください。

7. まとめ

kintone REST APIを使えば、JavaScriptで簡単にアプリ設定を自動化できます。このサンプルコードを参考に、ぜひ自分のプロジェクトに活用してください!


8. 参考リンク