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

Kintoneアプリを外部システムと連携させる方法

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

1. はじめに

API連携の重要性

API(アプリケーション・プログラミング・インターフェース)は、異なるソフトウェア間でのデータ交換や機能の統合を可能にする仕組みです。特にクラウドベースの業務管理プラットフォームであるKintoneは、APIを利用することで、外部システムとスムーズにデータ連携や自動化を実現できます。

外部システムとのデータ交換・自動化の利点

外部システムとの連携により、業務効率の向上やデータの一貫性が保たれます。たとえば、KintoneとCRMシステムやERPシステムを連携させることで、情報の手入力を減らし、リアルタイムでデータの更新が可能になります。これにより、時間の節約やミスの防止が期待できます。

本記事の目的

本記事では、JavaScriptを用いてKintoneアプリと外部システムのAPI連携を実現する方法を解説します。具体的には、Kintone REST APIを使ったデータの取得、送信方法や、外部APIとの連携例を示しながら、実際のコード例とその実行方法を紹介します。

🌟ちょっとお知らせ🌟

kintoneユーザーの皆さん!
エムザスの kintoneプラグイン はもう試しましたか?🤔

登録不要&無料で、ほとんどの機能が今すぐお試しいただけます✨
今すぐお試ししたい方はこちらから!

さらに、お客様のドメインで 無料で3ヶ月間、すべての機能 を試すこともできます!🎉
以下のリンクからお申し込みください👇
お客様のドメインでじっくりお試ししたい方はこちらから!

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

2. KintoneのAPIとは?

Kintone REST APIの概要

Kintone REST APIは、Kintoneアプリと外部システムを連携させるためのインターフェースを提供します。これを利用することで、アプリのレコード取得、データの作成・更新・削除など、さまざまな操作が外部からプログラムで実行可能になります。Kintone REST APIは、HTTPリクエストを通じて操作を行うため、どのプラットフォームからも簡単に利用できます。

APIトークンの取得方法

Kintone APIを使用するには、まずAPIトークンを取得する必要があります。APIトークンは、外部システムがKintoneにアクセスする際の認証に使われます。以下の手順で取得できます。

  1. Kintoneの管理者画面にアクセス。
  2. 「設定」→「APIトークン」の順に進みます。
  3. 「新規作成」をクリックしてトークンを生成。
  4. 必要なアクセス権限を設定し、生成されたトークンをコピー。

APIトークンを使うことで、セキュアに外部システムとKintoneアプリを連携できます。

3. 外部システムとの連携シナリオの例

外部システムとKintoneの連携にはさまざまなシナリオがあります。以下にいくつかの例を挙げます。

例1: 顧客データの自動同期

Kintoneアプリに登録されている顧客データを、CRMシステム(SalesforceやHubSpotなど)と同期させるシナリオです。Kintoneアプリに新しい顧客情報が追加された場合、それを外部CRMに自動的に転送します。この連携を通じて、手作業でデータを入力する手間を削減できます。

例2: 在庫管理システムとの連携

Kintoneを使って商品情報を管理している場合、外部の在庫管理システムと連携させることができます。例えば、Kintoneアプリに新しい商品が登録された場合、そのデータを在庫管理システムに自動で送信し、リアルタイムで在庫情報を更新することが可能です。

例3: メール配信システムとの連携

Kintoneアプリ内で顧客のメールアドレスを管理している場合、外部のメール配信サービス(Mailchimpなど)と連携し、特定の条件に基づいて自動的にメールを送信することができます。

4. 実際のコード例(JavaScript)

次に、Kintoneアプリと外部システムを連携させるための基本的なコード例を紹介します。ここでは、KintoneのREST APIを使用して、外部APIにデータを送信するシンプルな例を示します。

例1: Kintoneからデータを取得し、外部APIに送信

(function() {
    "use strict";

    // KintoneのREST APIでレコードを取得
    var getKintoneRecords = function() {
        return new kintone.Promise(function(resolve, reject) {
            var query = 'order by $id asc limit 1';
            var appId = kintone.app.getId();
            kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', {
                app: appId,
                query: query
            }).then(function(response) {
                resolve(response.records);
            }).catch(function(error) {
                reject(error);
            });
        });
    };

    // 外部APIにデータを送信
    var sendDataToExternalAPI = function(data) {
        var url = "https://example.com/api/receive_data";
        var requestData = {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer YOUR_API_TOKEN'
            },
            body: JSON.stringify(data)
        };

        return fetch(url, requestData)
            .then(response => response.json())
            .then(data => console.log('Success:', data))
            .catch((error) => console.error('Error:', error));
    };

    // Kintoneからデータを取得し、外部APIに送信
    getKintoneRecords().then(function(records) {
        var dataToSend = {
            id: records[0].$id.value,
            name: records[0].name.value
        };
        sendDataToExternalAPI(dataToSend);
    }).catch(function(error) {
        console.error('Error fetching Kintone records:', error);
    });

})();

このコードは、Kintoneのアプリからデータを取得し、それを外部APIに送信するものです。まず、getKintoneRecords()でKintoneのレコードを取得し、sendDataToExternalAPI()で外部システムにデータをPOSTします。

例2: 外部APIからKintoneにデータを送信

(function() {
    "use strict";

    // 外部APIからデータを取得
    var getExternalAPIData = function() {
        return fetch("https://example.com/api/fetch_data")
            .then(response => response.json())
            .then(data => data)
            .catch((error) => console.error('Error:', error));
    };

    // Kintoneにデータを送信
    var sendDataToKintone = function(data) {
        var appId = kintone.app.getId();
        var record = {
            "name": {
                "value": data.name
            },
            "email": {
                "value": data.email
            }
        };

        return kintone.api(kintone.api.url('/k/v1/record.json', true), 'POST', {
            app: appId,
            record: record
        }).then(function(response) {
            console.log('Kintone record created:', response);
        }).catch(function(error) {
            console.error('Error creating Kintone record:', error);
        });
    };

    // 外部APIからデータを取得し、Kintoneに送信
    getExternalAPIData().then(function(data) {
        sendDataToKintone(data);
    }).catch(function(error) {
        console.error('Error fetching external API data:', error);
    });

})();

こちらのコードは、外部APIからデータを取得し、そのデータをKintoneアプリに送信する例です。

5. テストとデバッグ

連携を行った後は、動作確認とテストが不可欠です。テストを行う際は、以下のポイントに注意して進めましょう。

  1. APIトークンの確認: APIトークンが正しく設定されているか、必要な権限が付与されているか確認します。
  2. ログの確認: コンソールログを活用して、データの流れやエラーを確認します。
  3. エラーハンドリング: API呼び出しの失敗に備えて、エラーハンドリングを実装します。適切なエラーメッセージを表示することで、問題の特定が容易になります。

デバッグを進めることで、Kintoneと外部システムとのAPI連携が正常に機能することを確認できます。