GASのUrlFetchAppで外部APIにリクエストを送る方法

先生

GASで外部APIと連携して、スプレッドシートをさらに便利に!UrlFetchAppの使い方を徹底解説します。

はじめに:GASで外部API連携の基礎

Google Apps Script(GAS)は、Google Workspaceの様々なサービスを自動化できる強力なツールです。その中でも、UrlFetchAppクラスを使うことで、外部のAPIと連携し、データを取得したり、送信したりすることが可能になります。

この記事では、GASのUrlFetchAppを使って外部APIにリクエストを送信する方法について、基本的な使い方から、エラーハンドリング、認証まで、詳しく解説します。

UrlFetchApp.fetch()の基本

UrlFetchApp.fetch()は、指定されたURLにHTTPリクエストを送信し、レスポンスを取得するための基本的なメソッドです。

最もシンプルな使い方は、GETリクエストを送信することです。以下に例を示します。

function callApi() {
  const url = 'https://jsonplaceholder.typicode.com/todos/1';
  const response = UrlFetchApp.fetch(url);
  const content = response.getContentText();
  Logger.log(content);
}

リクエストオプションの設定

UrlFetchApp.fetch()には、様々なオプションを設定することができます。例えば、HTTPメソッド(GET, POST, PUT, DELETEなど)、ヘッダー、ペイロードなどを指定できます。

POSTリクエストを送信する例を見てみましょう。

function postData() {
  const url = 'https://jsonplaceholder.typicode.com/posts';
  const payload = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1,
  };
  const options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload)
  };
  const response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getContentText());
}

エラーハンドリング

APIリクエストは、様々な理由で失敗する可能性があります。そのため、エラーハンドリングは非常に重要です。

try-catch文を使って、エラーをキャッチし、適切な処理を行うようにしましょう。

function callApiWithErrorHandling() {
  try {
    const url = 'https://example.com/api/nonexistent'; // 存在しないURL
    const response = UrlFetchApp.fetch(url);
    const content = response.getContentText();
    Logger.log(content);
  } catch (e) {
    Logger.log('エラーが発生しました: ' + e);
  }
}

認証:APIキーとOAuth2

多くのAPIは、認証を必要とします。認証方式には、APIキーやOAuth2など、様々な種類があります。

APIキーを使用する場合は、リクエストヘッダーにAPIキーを含めるのが一般的です。

function callApiWithApiKey() {
  const url = 'https://api.example.com/data';
  const apiKey = 'YOUR_API_KEY';
  const options = {
    'headers': {
      'X-API-Key': apiKey
    }
  };
  const response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getContentText());
}

OAuth2を使用する場合は、OAuth2ライブラリを利用して、アクセストークンを取得し、リクエストヘッダーに含めます。(詳細なOAuth2の実装は、別の記事で解説します。)

参考リンク

まとめ

GASのUrlFetchAppを使うことで、外部APIとの連携が簡単に行えます。基本的な使い方、オプション設定、エラーハンドリング、認証について理解することで、より高度なアプリケーションを開発することができます。

この記事を参考に、ぜひ様々なAPIとの連携に挑戦してみてください。