API連携の流れ
APIキーを取得する
API呼び出しコードを書く
レスポンスを処理する

⚠️ この章はロードマップ外の上級者向けコンテンツです。基礎編を修了してから取り組んでください。

⚙️ GASでAPI連携を行う方法

GASで外部APIを呼び出す基本的な手順を学びます

📋 GASでAPI連携を行う基本的な流れ

GASでAPI連携を行う基本的な流れは、以下の3つのステップに分かれます。 これらのステップをマスターすれば、どんなAPIでも連携できるようになるでしょう。

1

APIキーを取得

外部サービスからAPIキーを発行してもらう

2

コードを書く

GASでAPI呼び出しコードを実装する

3

レスポンスを処理

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など)を見ていきましょう。 わからないことがあれば、何度でも読み返してくださいね。

次のセクションへ:代表的なAPI連携の例 →
× 拡大画像