スキップしてメイン コンテンツに移動

GASで外部API呼び出し

GASで外部API呼び出し

GAS実践と外部API連携の概要

Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための強力なツールです。外部API連携を行うことで、スプレッドシートに外部データを取り込み、レポート作成や通知機能を拡張できます。ここでは、GAS実践の基本として、外部API連携の流れを整理します。

  • APIエンドポイントを決定し、必要な認証情報を取得する。
  • UrlFetchAppを使ってHTTPリクエスト(GET/POST)を送信する。
  • レスポンスをJSONとして解析し、必要なデータを抽出する。
  • 取得したデータをスプレッドシートやメールに反映させる。

このプロセスをスクリプト化することで、定期的なデータ更新や自動レポート生成が可能になります。

UrlFetchAppでGET/POSTリクエストを送る

外部API呼び出しの中心となるのがUrlFetchAppです。以下に、GETとPOSTの基本的な使い方を示します。

function fetchData() {
  // GETリクエスト
  var getUrl = 'https://api.example.com/v1/items';
  var getOptions = {
    'method': 'get',
    'headers': {
      'Authorization': 'Bearer YOUR_TOKEN'
    }
  };
  var getResponse = UrlFetchApp.fetch(getUrl, getOptions);
  Logger.log(getResponse.getContentText());

  // POSTリクエスト
  var postUrl = 'https://api.example.com/v1/items';
  var postPayload = {
    'name': 'Sample Item',
    'price': 100
  };
  var postOptions = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(postPayload),
    'headers': {
      'Authorization': 'Bearer YOUR_TOKEN'
    }
  };
  var postResponse = UrlFetchApp.fetch(postUrl, postOptions);
  Logger.log(postResponse.getContentText());
}

上記の例では、GETリクエストでデータを取得し、POSTリクエストで新しいリソースを作成しています。fetchメソッドは、HTTPリクエストを送信し、レスポンスオブジェクトを返します。

JSON解析と外部データの活用

APIから返ってくるデータは通常JSON形式です。GASではJSON.parseを使って簡単に解析できます。

function parseJson() {
  var url = 'https://api.example.com/v1/items';
  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());
  // 例: items配列から名前と価格を取得
  var items = json.items;
  items.forEach(function(item) {
    Logger.log('Name: ' + item.name + ', Price: ' + item.price);
  });
}

取得したデータをスプレッドシートに書き込む例も紹介します。

function writeToSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
  var url = 'https://api.example.com/v1/items';
  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());
  var items = json.items;
  // ヘッダーを書き込む
  sheet.clearContents();
  sheet.appendRow(['Name', 'Price']);
  // データを書き込む
  items.forEach(function(item) {
    sheet.appendRow([item.name, item.price]);
  });
}

このように、外部データを取得し、JSON解析を経てスプレッドシートに反映させることで、リアルタイムなデータ管理が実現します。

この記事はAIによって作成されました。

コメント