スキップしてメイン コンテンツに移動

【2026年版】GAS自動化の「準備」ガイド:APIキーの入手からかんたんな動作テストまで

「GASの自動化を始めたいけど、設定が難しそう…」と不安に思っていませんか?
実は、GASで外部サービスを操るために必要なのは、「合言葉(APIキー)」を手に入れることだけです。

そもそも「GAS」とは?

GAS(Google Apps Script)は、Googleが提供する「Googleワークスペースを自動操縦するための魔法の杖」です。
特別なソフトをインストールすることなく、ブラウザひとつでメール送信やデータ集計を全自動化できます。

APIとは要するに何?

APIを一言でいうなら、「サービス専用の窓口に並ぶための整理券」です。
たとえば、あなたがデパート(Google)の厨房(AIやデータ)に直接入ることはできませんが、店員さん(API)に「整理券(APIキー)」を見せれば、代わりに料理を作って持ってきてくれます。

Gemini API:AIの「脳みそ」を呼び出す窓口

今回の自動化で主役となるのが「Gemini API」です。これはGoogleが誇る最新AIの機能を、あなたのプログラムから直接呼び出すための窓口です。
テキストの生成や要約など、これまで人間が頭を使っていた作業をGASが代わりに実行するための「脳」の役割を果たします。


1. Gemini API の整理券を「無料」でもらう

まずは、AIの脳みそであるGeminiを使えるようにします。

💰 費用について:無料版で大丈夫?
「Geminiの有料プランに入っていないとダメなの?」と思うかもしれませんが、結論、無料でOKです!
開発者向けの「Google AI Studio」には無料枠が用意されており、個人の自動化レシピを試す分には十分すぎるほど無料で使えます。
  1. Google AI Studioにアクセスします。
  2. 左メニューの「APIキーを作成」をクリック。
  3. ポイント: 初めて開いた場合、すでにデフォルトのキーが作成されていることがあります。その場合は、表示されている英数字のキーをコピーするだけでOKです!
    ※新しく作りたい場合は「キーを作成」ボタンから発行できます。
  4. 表示された長い英数字をコピーします。これが、あなたの「無料整理券(APIキー)」になります。

2. プロジェクトを作成し、開発室を準備する

GASを始めるには、まずGoogleドライブ内で「プロジェクト」というファイルを作る必要があります。

GASプロジェクトを新規作成する

  1. Googleドライブを開きます。
  2. 左上の「+ 新規」をクリック。
  3. 「その他」「Google Apps Script」 を選択します。
  4. 新しいエディタ画面が開いたら、左上の「無題のプロジェクト」をクリックして、好きな名前(例:マザーシステム)に変更しておきましょう。

3. 【最重要】取得したキーを「金庫」に保存する

手に入れたキーをプログラムの中に直接書いてはいけません。GASには「スクリプトプロパティ」という安全な金庫があります。

  1. GASエディタ左側の歯車アイコン(プロジェクトの設定)をクリック。
  2. 一番下の「スクリプトプロパティを編集」をクリック。
  3. 以下の名前と値を入力して保存します。
名前(プロパティ) 値(あなたがコピーした内容)
GEMINI_API_KEY 取得したAPIキー

4. 実行時の「承認」手順(初回のみ)

初めてプログラムを実行するとき、Googleから「このプログラムに外部への接続を許可しますか?」と確認が出ます。少し驚く画面かもしれませんが、以下の手順で進めてください。

  1. 「実行」ボタンを押すと、「承認が必要」と出るので「権限を確認」をクリック。
  2. 自分のGoogleアカウントを選択。
  3. 「このアプリは Google で確認されていません」という画面が出たら、左下の「詳細」をクリック。
  4. 一番下に出現する「(プロジェクト名)に移動」をクリック。
  5. 最後に「許可」を押せば完了です!

💡 ためしにAPIを使ってみよう:AIジョーク・テスト

設定が正しいか、実行ログにAIからのジョークを表示させて確認しましょう。このコードは、自動的に「今使える最適なモデル」を探索して接続する機能をもっています。

/**
 * Gemini API 接続テスト(自動モデル探索版)
 * 複数の候補から今すぐ使えるモデルを自動で見つけ出し、ジョークを生成します。
 */
function testGeminiConnection() {
  // 1. 金庫(スクリプトプロパティ)からAPIキーを取り出す
  const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
  
  if (!apiKey) {
    console.error("❌ APIキーが見つかりません。手順3のプロパティ設定を確認してください。");
    return;
  }

  // 2. 試行するモデルの候補リスト(優先度順)
  // Geminiは進化が早いため、一つがダメでも他が動くように予備を含めています
  const candidates = [
    { name: "gemini-2.5-flash-lite-preview-09-2025", version: "v1beta" }, // 最新の軽量・高速モデル
    { name: "gemini-2.0-flash-exp", version: "v1beta" },                 // 2.0系の実験的モデル
    { name: "gemini-1.5-flash", version: "v1" }                          // 1.5系の安定版モデル
  ];

  console.log("🔄 接続可能なモデルを探索中...");

  // 3. 使えるモデルが見つかるまで順番にリクエストを試行
  for (const model of candidates) {
    // API呼び出し用のURLを組み立て
    const url = `https://generativelanguage.googleapis.com/${model.version}/models/${model.name}:generateContent?key=${apiKey}`;
    
    // AIへの命令(プロンプト)
    const payload = {
      "contents": [{ "parts": [{ "text": "事務職の人がクスッと笑えるような、短いジョークを1つだけ教えてください。" }] }]
    };

    const options = {
      "method": "post",
      "contentType": "application/json",
      "payload": JSON.stringify(payload),
      "muteHttpExceptions": true // エラー時も処理を止めずに詳細ログを取得する設定
    };

    try {
      const response = UrlFetchApp.fetch(url, options);
      const status = response.getResponseCode();
      
      // ステータス200(成功)の場合のみ処理
      if (status === 200) {
        const json = JSON.parse(response.getContentText());
        const joke = json.candidates?.[0]?.content?.parts?.[0]?.text;
        
        if (joke) {
          console.log(`✅ 接続成功! 使用モデル: ${model.name}`);
          console.log("--- AIからのジョーク ---");
          console.log(joke);
          return; // 成功したのでここで関数を終了
        }
      } else {
        console.warn(`⚠️ ${model.name} は現在利用できません (Status: ${status})`);
      }
    } catch (e) {
      console.warn(`⚠️ ${model.name} で通信エラーが発生しました: ${e.message}`);
    }
  }

  console.error("❌ すべてのモデルで接続に失敗しました。APIキーを確認してください。");
}

コードの解説

このテストコードには、単に文字を出すだけではない、実戦的な工夫が含まれています。

  • ジョーク生成による開通確認: 接続できたかどうかを確認するために、AIに短いジョークを考えさせています。実行ログにAIらしい回答が表示されれば、あなたのGASプロジェクトにAIの「脳」が正しく接続された証拠です。
  • 自動モデル探索機能: Geminiには多くのモデル(バージョン)が存在し、時期やAPIのバージョン(v1 / v1beta)によって「今使えるもの」が変動します。特定のモデルを決め打ちすると、Google側の更新で突然エラーになるリスクがあるため、このコードでは「今動くモデルを候補の中から自動で探し出す」仕組みを導入しています。
  • エラーを恐れない設計: muteHttpExceptions: true を使うことで、もし特定のモデルが404エラーなどで接続できなくても、プログラムを止めずに次の候補を試す「粘り強い」設計になっています。

コメント

このブログの人気の投稿

【通知】LINE・Slack・DiscordのAPI取得マニュアル

自動化の醍醐味は、GASに「チャットで報告させる」ことです。 APIキーの保存方法については、 [1-Aの記事] で解説した「金庫(スクリプトプロパティ)」の手順を先に行っておいてくださいね! 1. LINE Messaging API LINE Developers にログイン。 新規チャネルを作成し、 「Messaging API設定」 タブへ。 一番下の「チャネルアクセストークン」を発行してコピーします。 2. Slack (Webhook & API) Slack API で「Create New App」を作成。 「Incoming Webhooks」をONにして、表示されるURLをコピーします。 3. Discord (Webhooks) サーバー設定の「連携サービス」から「ウェブフックを作成」。 「ウェブフックURLをコピー」をクリック。これだけで準備完了です! 4. スクリプトプロパティへの保存 取得したキーは、[1-A]の手順で以下の名前で保存してください。 名前(プロパティ) 値 LINE_TOKEN LINEのアクセストークン SLACK_URL SlackのWebhook URL 💡 ためしにAPIを使ってみよう:金庫の確認テスト チャットへ通知を飛ばす前に、金庫に正しく合言葉が保存されているかチェックしましょう。 function testNotificationConfig() { const props = PropertiesService.getScriptProperties(); const slackUrl = props.getProperty('SLACK_URL') || "未設定"; const sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange("A1").setValue("設定確認:" + slackUrl.substring(0, 10) + "......

【情報収集】天気・技術ニュースのAPI取得マニュアル

外部の「生きたデータ」をGASに流し込むための窓口を確保しましょう。 保存方法は [1-Aの記事] の「金庫」の手順で行います。 1. OpenWeatherMap (天気予報) OpenWeatherMap に登録。 「API keys」タブにあるキーをコピーします。 2. Qiita API Qiitaの「設定」→「アプリケーション」を開く。 「個人用アクセストークン」を発行してコピーします。 3. Yahoo Finance (キー不要) Yahoo FinanceなどはAPIキーなしで数字を取る「スクレイピング」という手法を使います。具体的なやり方は各レシピ記事で紹介します! 4. スクリプトプロパティへの保存 [1-A]の手順で以下の名前で保存してください。 名前(プロパティ) 値 WEATHER_KEY 天気APIのキー QIITA_TOKEN Qiitaのアクセストークン 💡 ためしにAPIを使ってみよう:情報源の接続テスト 情報収集のパスワードが正しくセットされているか確認します。 function testDataConfig() { const weatherKey = PropertiesService.getScriptProperties().getProperty('WEATHER_KEY'); const sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange("A1").setValue(weatherKey ? "お天気API、準備完了!" : "キーが未設定です"); }