💻 GASからGemini APIを使ってテキスト生成
取得したAPIキーを使って、実際にテキスト生成を試してみましょう
📝 ステップ1:APIキーをGASに保存
まず、取得したAPIキーをGASのプロパティサービスに保存します。 プロパティサービスは、GASでキーと値のペアを安全に保存できる機能です。
APIキーをコード内に直接書いてしまうと、コードを共有したときに他人に見られてしまう危険があります。 プロパティサービスを使えば、APIキーを安全に管理できますよ。
💡 プロパティサービスとは?
プロパティサービスは、GASでキーと値のペアを永続的に保存できる機能です。 APIキーのような機密情報を安全に保存するのに最適で、コードには直接書かずに済みます。
コード例
// プロパティサービスを取得
const scriptProperties = PropertiesService.getScriptProperties();
// APIキーを保存(YOUR_API_KEY_HEREを、実際のAPIキーに置き換えてください)
scriptProperties.setProperty('GEMINI_API_KEY', 'YOUR_API_KEY_HERE');
// 保存完了メッセージ
Logger.log('APIキーを保存しました');
}
実行手順
GASエディタを開く
Googleスプレッドシートから、拡張機能 → Apps Script を選択して、 GASエディタを開きます。
上記のコードを貼り付ける
エディタに上記のコードを貼り付けます。
'YOUR_API_KEY_HERE'
の部分を、前のセクションで取得した実際のAPIキーに置き換えてくださいね。
関数を実行
画面上部の「実行」ボタンをクリックして、
setGeminiApiKey
関数を実行します。
初回実行時は、権限の承認を求められます。 「許可を確認」→ 自分のGoogleアカウントを選択 → 「許可」をクリックしてください。
保存確認
実行が完了したら、「表示」 → 「ログ」を開いて、 「APIキーを保存しました」というメッセージが表示されているか確認しましょう。
✅ APIキーの保存が完了しました!
これで、APIキーが安全にプロパティサービスに保存されました。 この関数は初回のみ実行すればOKです。次回からは、保存されたAPIキーを読み込んで使用します。
🚀 ステップ2:テキスト生成コードを作成
それでは、実際にGemini APIを使ってテキストを生成するコードを作成してみましょう。 以下のコードをGASエディタに追加してください。
// プロパティサービスからAPIキーを取得
const scriptProperties = PropertiesService.getScriptProperties();
const apiKey = scriptProperties.getProperty('GEMINI_API_KEY');
// プロンプト(AIに送る指示)
const prompt = '日本の観光名所を3つ教えてください。';
// APIエンドポイント
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${apiKey}`;
// リクエストペイロード
const payload = {
"contents": [
{
"parts": [
{
"text": prompt
}
]
}
]
};
// リクエストオプション
const options = {
'method': 'POST',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
// API呼び出し
try {
const response = UrlFetchApp.fetch(url, options);
const result = JSON.parse(response.getContentText());
// 生成されたテキストを取得
const generatedText = result.candidates[0].content.parts[0].text;
Logger.log(generatedText);
return generatedText;
} catch (error) {
Logger.log('エラー: ' + error.message);
return null;
}
}
実行してみましょう
- 上記のコードをGASエディタに追加します
- 画面上部の関数選択で
generateTextWithGeminiを選択 - 「実行」ボタンをクリック
- 「表示」 → 「ログ」を開いて、生成されたテキストを確認
うまくいけば、日本の観光名所が3つ表示されるはずですよ!
🔍 コードの詳細解説
それでは、上記のコードがどのように動いているのか、詳しく見ていきましょう。 各部分の役割を理解することで、自分で応用できるようになりますよ。
1️⃣ APIキーの取得
const apiKey = scriptProperties.getProperty('GEMINI_API_KEY');
プロパティサービスから、先ほど保存したAPIキーを取得しています。
getProperty('GEMINI_API_KEY')で、
保存したキーを読み込むことができます。
2️⃣ プロンプトの設定
AIに送る指示(プロンプト)を設定しています。 このプロンプトを変更することで、さまざまなタスクを実行できます。 例えば、「メール文章を作成してください」や「この文章を要約してください」など、 用途に応じて変更しましょう。
3️⃣ APIエンドポイント
Gemini APIのエンドポイント(アクセス先)を指定しています。
gemini-proはモデル名で、
テキスト生成に特化したモデルです。
URLの最後に、取得したAPIキーを付けることで、認証が行われます。
4️⃣ リクエストペイロード
"contents": [
{
"parts": [{ "text": prompt }]
}
]
};
APIに送信するデータの形式を指定しています。
contentsの中に、
プロンプトを含めることで、AIがその指示に基づいてテキストを生成します。
この構造は、Gemini APIの仕様で決まっています。
5️⃣ API呼び出しとレスポンス処理
const result = JSON.parse(response.getContentText());
const generatedText = result.candidates[0].content.parts[0].text;
UrlFetchApp.fetch()で、
APIにリクエストを送信します。
返ってきたレスポンスはJSON形式なので、JSON.parse()で解析します。
最後に、result.candidates[0].content.parts[0].text
で、生成されたテキストを取り出しています。
この階層構造は、Gemini APIのレスポンス形式に従っていますよ。
6️⃣ エラーハンドリング
// API呼び出し処理
} catch (error) {
Logger.log('エラー: ' + error.message);
return null;
}
try-catch文で、
エラーが発生した場合の処理を記述しています。
APIキーが間違っていたり、ネットワークエラーが発生した場合は、
エラーメッセージがログに記録されます。
💡 応用のヒント
プロンプトを変更することで、さまざまなタスクに対応できます。例えば:
- 「以下の文章を英語に翻訳してください」
- 「以下の商品情報から、魅力的な説明文を作成してください」
- 「以下の問い合わせ内容を、『商品』『配送』『その他』に分類してください」
📝 このセクションのまとめ
皆さん、GASからGemini APIを使ったテキスト生成について理解できましたでしょうか?
- ✓ APIキーはプロパティサービスに保存して、安全に管理します
- ✓ UrlFetchApp.fetch()でAPIにリクエストを送信し、レスポンスを受け取ります
- ✓ プロンプトを変更することで、さまざまなタスクに対応できます
- ✓ エラーハンドリングを実装して、予期しない問題に対処します
次のセクションでは、この基本を応用して、実際のビジネスシーンで使える実用例を紹介していきます。 商品説明文の自動生成や、問い合わせ内容の分類など、実践的な活用方法を一緒に学んでいきましょう!