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解析を経てスプレッドシートに反映させることで、リアルタイムなデータ管理が実現します。
コメント
コメントを投稿