中級者向け実践:IT企業でのGAS API連携によるリアルタイムデータ収集と可視化(チーム利用)

中級者向け実践:IT企業でのGAS API連携によるリアルタイムデータ収集と可視化(チーム利用)

本記事では、IT企業におけるチーム利用を想定し、Google Apps Script(GAS)を用いたAPI連携によるリアルタイムデータ収集と可視化の実践方法を中級者向けに解説します。特に、複数のAPIからデータを収集し、スプレッドシートに集約、さらにダッシュボードで可視化する一連の流れを、実際のコード例を交えてご紹介します。

API連携の基礎

API(Application Programming Interface)とは、異なるソフトウェア同士が互いに情報をやり取りするためのインターフェースです。GASでは、UrlFetchAppサービスを利用して、様々なAPIにアクセスできます。

UrlFetchAppサービス

UrlFetchAppは、HTTPリクエストを送信し、APIからデータを受信する際に使用します。GET、POSTなどのHTTPメソッドをサポートしており、ヘッダーやペイロードをカスタマイズすることも可能です。

function fetchDataFromAPI(url, method, payload) {
const options = {
"method": method,
"payload": payload,
"muteHttpExceptions": true // エラー発生時も処理を継続
};
try {
const response = UrlFetchApp.fetch(url, options);
const statusCode = response.getResponseCode();
const content = response.getContentText();

if (statusCode >= 200 && statusCode < 300) {
// 成功した場合
return JSON.parse(content);
} else {
// エラーの場合
Logger.log("API Error: " + statusCode + " - " + content);
return null; // または適切なエラーハンドリング
}
} catch (e) {
Logger.log("Fetch Error: " + e);
return null; // または適切なエラーハンドリング
}
}

リアルタイムデータ収集

APIからリアルタイムにデータを収集するには、定期的にUrlFetchApp.fetch()を実行する必要があります。GASのトリガー機能を利用することで、指定した間隔でスクリプトを自動実行できます。

トリガーの設定

GASエディタの「トリガー」アイコンをクリックし、時間主導型のトリガーを設定します。例えば、1分ごとに実行するように設定することで、ほぼリアルタイムなデータ収集が可能です。

複数のAPIからのデータ収集

複数のAPIからデータを収集するには、それぞれのAPIに対してfetchDataFromAPI()を呼び出し、結果を統合します。この際、エラーハンドリングを適切に行い、APIの可用性に注意する必要があります。

function collectDataFromMultipleAPIs() {
const api1Url = "https://api.example.com/data1";
const api2Url = "https://api.example.com/data2";

const data1 = fetchDataFromAPI(api1Url, "get", null);
const data2 = fetchDataFromAPI(api2Url, "get", null);

if (data1 && data2) {
// データを統合
const combinedData = {
...data1,
...data2
};
return combinedData;
} else {
Logger.log("Failed to fetch data from one or more APIs.");
return null;
}
}

スプレッドシートへのデータ集約

収集したデータをスプレッドシートに集約するには、SpreadsheetAppサービスを使用します。getSheetByName()でシートを取得し、appendRow()またはsetValues()でデータを書き込みます。

function writeDataToSpreadsheet(data) {
const spreadsheetId = "your_spreadsheet_id"; // スプレッドシートIDを設定
const sheetName = "DataSheet"; // シート名を指定
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);

// データを配列に変換
const dataArray = Object.values(data); // オブジェクトの値を配列として取得

// 最終行に追加
sheet.appendRow(dataArray);
}

ダッシュボードでの可視化

スプレッドシートに集約したデータを可視化するには、Google Charts APIを利用するか、スプレッドシートのグラフ機能を利用します。ここでは、スプレッドシートのグラフ機能を使った簡単なダッシュボード作成方法を紹介します。

グラフの作成

スプレッドシート上で、可視化したいデータ範囲を選択し、「挿入」メニューから「グラフ」を選択します。グラフの種類(折れ線グラフ、棒グラフなど)を選択し、必要な設定を行います。

ダッシュボードの作成

複数のグラフを1つのシートに配置し、フィルタやスライサーを追加することで、インタラクティブなダッシュボードを作成できます。スプレッドシートの「データ」メニューから「フィルタ」または「スライサー」を選択し、必要な設定を行います。

応用例と活用シーン

  • システム監視ダッシュボード:サーバーのCPU使用率、メモリ使用量、ネットワークトラフィックなどをAPIから収集し、リアルタイムに監視するダッシュボードを作成します。
  • マーケティングデータ分析:Google Analytics APIやSNS APIからデータを収集し、キャンペーンの効果測定や顧客行動分析を行うダッシュボードを作成します。
  • 営業活動の可視化:CRM APIから営業データを収集し、売上目標達成状況や案件進捗状況をリアルタイムに把握できるダッシュボードを作成します。

まとめ

GASとAPI連携を活用することで、様々なデータをリアルタイムに収集し、可視化することが可能です。本記事で紹介した方法を参考に、自社のニーズに合わせたデータ収集・可視化システムを構築し、業務効率化や意思決定の迅速化に役立ててください。特に、IT企業においては、システム監視、マーケティング分析、営業活動の可視化など、幅広い分野で活用できます。