すぐに始められる!GASでAPIを呼び出しする基本と注意点

GASでAPI呼び出しをやってみたいんだけど、どこから始めたらいいのかな?…
猫男
猫男
catman
catman
catmanの出番だな。まずは基本からだ。

GASでAPIの呼び出しをする方法

GASを使ってAPIを呼び出すためには、UrlFetchAppという便利なクラスを使う。

Google Apps Scriptの中で、外部サービスと通信するためのものだ。

 

こんな感じで、外部APIにアクセスできるぞ。

function fetchAPI() {
   const url = 'https://api.example.com/data';
   const response = UrlFetchApp.fetch(url);
   Logger.log(response.getContentText());
}

単純にURLを指定し、その結果を取得してログに出力するだけのコードさ。

これがAPI呼び出しの基本だ。

 

たとえば、Cat Facts API(猫の豆知識)を使ってみようか。

function fetchAPI() {
  const url = 'https://catfact.ninja/fact';
  const response = UrlFetchApp.fetch(url);
  Logger.log(response.getContentText());
}

これをGASで実行すれば、次のような猫の豆知識のレスポンスが返ってくるだろう。

{“fact”:”Cats lap liquid from the underside of their tongue, not from the top.”,”length”:69}

GASでAPIを呼び出す際の注意点

以上で基本は習得できたはずだ。次はGASでAPI利用するにあたっての注意点を知っておこう。

APIの呼び出し制限

残念ながら、GASでAPIを無限に呼び出せない。次の表のような制限があることを覚えておこう。

項目 個人アカウント(無料) Google Workspace(有料ドメイン)
URL Fetch 呼び出し回数 20,000 回 / 日 100,000 回 / 日
1分あたりの呼び出し数 約100回程度が目安 少し余裕あり
スクリプト実行時間 6分/回 30分/回
総スクリプト実行時間(/日) 90分程度 6時間程度

API呼び出しの回数制限を避けるためには、呼び出し頻度を調整したり、利用したいAPIに対して適切なプランを選ぶことが重要だ。

GASで外部APIを呼び出すセットアップ

外部API呼び出しのために準備が必要なこともある!

たとえば、APIキーが必要なケースだ。

その場合、リクエストの設定が重要で、以下のようにGETメソッド、ヘッダーを指定するぞ。

function advancedFetchAPI() {
   const url = 'https://api.example.com/data';
   const options = {
     method: 'GET',
     headers: {
       'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
     }
   };
   const response = UrlFetchApp.fetch(url, options);
   Logger.log(response.getContentText());
}

これはヘッダーとしてAPIトークンを渡す例だ。

 

練習問題

  • GASでAPIを呼び出す際に使用するクラスは何でしょうか?
  • 外部APIを呼び出すためには何が必要ですか?スクリプトで示してください。
  • API呼び出しの際にはどのような制限があるでしょうか?

 

 

解答・解説

問題1の解答

GASでAPIを呼び出す際に使用するクラスはUrlFetchAppです。外部APIとの通信を行う際に使用します。

問題2の解答

外部APIを呼び出すためにはリクエストの詳細な設定が必要です。以下のコードはその例です。

const url = 'https://api.example.com/data';
const options = {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  }
};
const response = UrlFetchApp.fetch(url, options);

methodはHTTPメソッドを指定し、headersで必要なヘッダー情報を追加できます。

問題3の解答

API呼び出しの際には、Googleの設定した呼び出し回数の制限(例:無料プランでの1日の最大呼び出し回数)があります。

回数を超えた場合はAPIを呼び出せなくなるのでご利用は計画的に。