⚠️ この章はロードマップ外の上級者向けコンテンツです。基礎編を修了してから取り組んでください。
⚙️ GASでAPI連携を行う方法
GASで外部APIを呼び出す基本的な手順を学びます
📋 GASでAPI連携を行う基本的な流れ
GASでAPI連携を行う基本的な流れは、以下の3つのステップに分かれます。 これらのステップをマスターすれば、どんなAPIでも連携できるようになるでしょう。
APIキーを取得
外部サービスからAPIキーを発行してもらう
コードを書く
GASでAPI呼び出しコードを実装する
レスポンスを処理
APIから返ってきたデータを活用する
💡 ポイント
この3つのステップは、どのAPIでも共通です。 一度覚えてしまえば、ChatGPT API、Gemini API、Slack APIなど、どんなAPIでも応用できるようになります。
🔑 ステップ1:APIキーを取得する
外部サービスのAPIを使用するには、APIキーが必要です。 APIキーとは、あなたがそのサービスを使う権限を持っていることを証明するパスワードのようなものです。
🌐 主要なAPI取得先
ChatGPT API
取得先:OpenAI公式サイト(https://platform.openai.com/)
OpenAIアカウントを作成し、API Keysページからキーを発行します。
Gemini API
取得先:Google AI Studio(https://aistudio.google.com/)
Googleアカウントでログインし、「Get API Key」からキーを発行します。
Slack API
取得先:Slack App管理画面(https://api.slack.com/apps)
Slack Appを作成し、OAuth & Permissionsページからトークンを取得します。
⚠️ 重要な注意点
APIキーは絶対に他人に見せてはいけません。 もしAPIキーが漏洩すると、不正利用される可能性があります。 GitHubなどにコードを公開する際は、APIキーを削除してから公開しましょう。
💻 ステップ2:GASでAPI呼び出しコードを書く
GASには、UrlFetchAppというHTTPリクエストを送信する機能があります。 これを使ってAPIを呼び出すことができます。
📌 UrlFetchAppとは?
UrlFetchAppは、GASから外部のウェブサービスにHTTPリクエストを送るための機能です。 これを使えば、APIと通信してデータをやり取りできるようになります。
📝 基本構文
以下は、APIを呼び出す基本的なコードの構造です。 この構造を理解すれば、どんなAPIでも呼び出せるようになります。
function callAPI() {
// APIのエンドポイントURL
const url = "https://api.example.com/endpoint";
// APIキー(実際には自分のキーを入れる)
const apiKey = "YOUR_API_KEY_HERE";
// リクエストオプション
const options = {
"method": "POST", // HTTPメソッド(GET, POST, PUT, DELETEなど)
"headers": {
"Authorization": "Bearer " + apiKey, // 認証ヘッダー
"Content-Type": "application/json" // データ形式
},
"payload": JSON.stringify({ // 送信するデータ
"message": "Hello, API!"
})
};
// API呼び出し
const response = UrlFetchApp.fetch(url, options);
// レスポンスを解析
const result = JSON.parse(response.getContentText());
// 結果をログに出力
Logger.log(result);
}
🔍 コードの詳細説明
① url(エンドポイントURL)
APIにアクセスするためのURLです。各APIの公式ドキュメントに記載されています。
const url = "https://api.example.com/endpoint";
② method(HTTPメソッド)
APIに対して行う操作の種類を指定します。
- GET:データを取得する
- POST:データを送信する
- PUT:データを更新する
- DELETE:データを削除する
"method": "POST"
③ headers(ヘッダー)
APIにリクエストを送る際の追加情報です。認証情報やデータ形式を指定します。
- Authorization:APIキーを含む認証情報
- Content-Type:送信するデータの形式(通常はapplication/json)
"headers": {
"Authorization": "Bearer " + apiKey,
"Content-Type": "application/json"
}
④ payload(送信データ)
APIに送信するデータです。JSON形式で記述し、JSON.stringify()で文字列に変換します。
"payload": JSON.stringify({
"message": "Hello, API!"
})
⑤ UrlFetchApp.fetch()(API呼び出し)
実際にAPIにリクエストを送信します。
const response = UrlFetchApp.fetch(url, options);
⑥ レスポンスを解析
APIから返ってきたデータをJSON形式に変換して使えるようにします。
const result = JSON.parse(response.getContentText());
📊 ステップ3:レスポンスを処理する
APIから返ってきたデータ(レスポンス)を処理して、実際に活用します。 レスポンスのデータは通常、JSON形式で返ってくるため、必要な情報を取り出して使います。
📝 レスポンス処理の例
例1:スプレッドシートに書き込む
APIから取得したデータをスプレッドシートに記録します。
function writeToSheet() {
// API呼び出し(省略)
const result = JSON.parse(response.getContentText());
// スプレッドシートを取得
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// データを書き込む
sheet.appendRow([result.data, result.timestamp]);
}
例2:Gmailでメールを送信する
APIから取得したデータをメールで送信します。
function sendEmail() {
// API呼び出し(省略)
const result = JSON.parse(response.getContentText());
// メールを送信
GmailApp.sendEmail(
"example@example.com", // 送信先
"APIからのレポート", // 件名
"結果:" + result.message // 本文
);
}
例3:Slackに通知を送る
APIから取得したデータをSlackに通知します。
function sendToSlack() {
// API呼び出し(省略)
const result = JSON.parse(response.getContentText());
// Slack Webhook URLを使って通知
const slackUrl = "YOUR_SLACK_WEBHOOK_URL";
const slackPayload = {
"text": "APIから通知:" + result.message
};
UrlFetchApp.fetch(slackUrl, {
"method": "POST",
"payload": JSON.stringify(slackPayload)
});
}
💡 ポイント
レスポンスの処理方法は、あなたの目的に応じて自由にカスタマイズできます。 スプレッドシートへの記録、メール送信、Slack通知など、用途に合わせて選びましょう。
📝 このセクションのまとめ
皆さん、GASでAPI連携を行う方法について理解できましたでしょうか?
- ✓ API連携は3つのステップで実現できます:APIキー取得、コード記述、レスポンス処理
- ✓ UrlFetchAppを使えば、GASから簡単にAPIを呼び出せます
- ✓ APIキーは絶対に他人に見せてはいけません
- ✓ レスポンスは目的に応じて自由に処理できます
次のセクションでは、具体的なAPI連携の例(ChatGPT、Gemini、Slackなど)を見ていきましょう。 わからないことがあれば、何度でも読み返してくださいね。