はじめに
「PCのブラウザやスマホアプリの利用は制限されているけれど、メールだけは使える」という環境はありませんか?そんな時、自分宛にメールを送るだけで最新のAI(Gemini)が答えてくれる仕組みがあれば便利です。
本記事では、Google Apps Script (GAS) を使い、Gmailをインターフェースにして Gemini API と対話するシステムの作り方を解説します。Google AI Studioで発行したAPIキーを利用するため、複雑なGoogle Cloudの設定なしで無料で始められます。
システムの動作原理
このシステムは、5分間隔などの時間主導型トリガーによって定期的に実行される「ポーリング方式」を採用しています。
- 検索: 受信トレイから件名に「AskGemini」を含む未読メールを検索。
- 抽出: 最新メッセージからユーザーの質問内容を抽出。
- API送信: 抽出したテキストをGemini APIに送信。
- 返信: APIからの回答を元のスレッドに返信。
- 既読処理: 二重処理(同じメールへの重複返信)を防ぐため、スレッドを既読にする。
構築ステップ
1. Gemini APIキーの取得
まずは Google AI Studio にアクセスし、APIキーを取得します。
- 「Get API key」をクリック。
- 「Create API key in new project」を選択して、生成されたキーをコピーしておきます。
2. GASプロジェクトの作成とコードの実装
Google Apps Scriptで新しいプロジェクトを作成し、メイン関数(checkAndReplyWithGemini)とAPI呼び出し関数(callGeminiAPI)を実装します。
ポイント:
-
セキュリティ: APIキーはコードに直接書かず、スクリプトプロパティ(
GEMINI_API_KEY)から取得するようにします。 -
二重処理防止: 処理の最後に必ず
thread.markRead()を実行し、次回の実行対象から外れるようにします。
3. スクリプトプロパティの設定
GASエディタの「プロジェクトの設定(歯車アイコン)」から、取得したAPIキーを設定します。
- プロパティ:
GEMINI_API_KEY - 値: (コピーしたAPIキー)
4. 権限の承認(重要)
初回実行時には必ず手動で実行ボタンを押し、権限を承認してください。
※「Google hasn't verified this app(このアプリは確認されていません)」という警告が出た場合は、「詳細(Advanced)」から「[プロジェクト名] (unsafe) に移動」をクリックして進める必要があります。
5. トリガーの設定
システムを自動化するため、「トリガー(時計アイコン)」から以下の設定を追加します。
- 実行する関数:
checkAndReplyWithGemini - イベントのソース: 「時間主導型」
- 時間ベースの型: 「分ベースのタイマー」
- 時間の間隔: 「5分ごと」
使い方
自分宛に、件名に「AskGemini」と入れてメールを送るだけです。最大5分以内に、Geminiからの回答がスレッド形式で返ってきます。
注意点
- 本文の精度: メールの署名や引用返信もプロンプトとして送信されるため、質問だけを簡潔に書くのがコツです。
- 既読管理: 手動でメールを未読に戻すと、再びAIが反応して返信してしまうため注意してください。
おわりに
GASを使えば、Gmailという身近なツールを強力なAIアシスタントに変えることができます。APIの無料枠を活かして、ぜひ自分専用のメールAIを作ってみてください。
参考資料:
- Google AI Studio
- Google Apps Script サービス (GmailApp, UrlFetchApp)