0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【講義用1(書きかけ】

Posted at

【超初心者向け】大学のPCでも大丈夫!Gemini × LINEチャットボットを完全無料で自作する(GAS使用)

はじめに

「生成AIを使ったチャットボットを作ってみたい!」
そう思って調べると、Pythonやローカルサーバーを使う記事がたくさん出てきます。しかし、大学や企業のネットワーク環境では**「ポート制限」「ファイアウォール」**の壁に阻まれ、自分のPCでサーバーを立てるのが難しいことがあります。

そこで今回は、Google Apps Script (GAS) を使って、大学のPCや厳しいネットワーク環境でも100%確実に動く、Gemini搭載LINEボットの作り方を解説します。

なぜこの方法なのか?

  • 環境構築ゼロ: ブラウザさえあればOK。黒い画面(ターミナル)は使いません。
  • ポート開放不要: プログラムはGoogleのサーバー上で動くため、学内Wi-Fiの制限を受けません。
  • 完全無料: GoogleアカウントとLINEアカウントがあれば0円です。
  • 24時間稼働: 自分のPCを閉じてもボットは動き続けます(Google Colabとの最大の違いです)。

完成イメージ

仕組みはシンプルです。私たちのPCは「設定」をするだけで、実際の通信はGoogleとLINEの間で行われます。

準備するもの

  1. Googleアカウント
  2. LINEアカウント

ステップ1:Geminiの「鍵」を入手する

まずはAI(Gemini)をプログラムから操作するためのパスワード(APIキー)を取得します。

  1. Google AI Studio にアクセスします。
  2. 「Create API key」 をクリックします。
  3. 「Create API key in new project」 を選択します。
  4. 表示された文字列(例: AIzaSy...)をコピーして、メモ帳などに保存しておきます。
    • ※このキーは他人に教えないでください。

ステップ2:LINEの「容れ物」を作る

LINE公式アカウント(Botのアカウント)を作成します。

  1. LINE Developersコンソール にアクセスし、自分のLINEアカウントでログインします。
  2. 「新規プロバイダー作成」 を押し、適当な名前(例:MyBot)を入力して作成します。
  3. 「新規チャネル作成」 をクリックし、「Messaging API」 を選択します。
    • 国/地域: 日本
    • チャネル名: ボットの名前(LINE上で表示される名前です)
    • 業種: 個人・教育など適当でOK
    • 入力が終わったら規約に同意して「作成」をクリック。
  4. 作成後の画面で、以下の2つを探してメモ帳にコピーします。
    • チャネルシークレット(「チャネル基本設定」タブの下の方)
    • チャネルアクセストークン(長期)(「Messaging API設定」タブの一番下。「発行」ボタンを押すと出ます)

ステップ3:プログラムを作成する (GAS)

ここが心臓部です。ブラウザ上で動く「Google Apps Script」を使います。

  1. ブラウザで Google Apps Script にアクセスします。
  2. 左上の 「新しいプロジェクト」 をクリックします。
  3. エディタ画面が開くので、もともと書いてあるコードを全て消し、以下のコードを貼り付けてください。
// ==========================================
// 設定エリア (ここを書き換えてください)
// ==========================================
const LINE_CHANNEL_ACCESS_TOKEN = 'ここにLINEのアクセストークンを貼り付け';
const GEMINI_API_KEY = 'ここにGeminiのAPIキーを貼り付け';
// ==========================================

// LINEからメッセージが届いたときに動く関数
function doPost(e) {
  try {
    // 届いたデータを読み取る
    const json = JSON.parse(e.postData.contents);
    const event = json.events[0];

    // メッセージ以外(スタンプなど)は無視
    if (event.type !== 'message' || event.message.type !== 'text') {
      return;
    }

    const userMessage = event.message.text; // ユーザーのメッセージ
    const replyToken = event.replyToken;    // 返信用のチケット

    // 1. Geminiに質問を投げる
    const botReply = callGemini(userMessage);

    // 2. LINEに返信する
    sendLineReply(replyToken, botReply);

  } catch (error) {
    console.log(error);
  }
  
  return ContentService.createTextOutput(JSON.stringify({content: "post ok"})).setMimeType(ContentService.MimeType.JSON);
}

// Gemini APIを叩く関数
function callGemini(text) {
  const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${GEMINI_API_KEY}`;
  
  const payload = {
    "contents": [{
      "parts": [{ "text": text }]
    }]
  };

  const options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    const json = JSON.parse(response.getContentText());
    // Geminiからの回答を抽出
    return json.candidates[0].content.parts[0].text;
  } catch (e) {
    return "すみません、AIの呼び出しに失敗しました。";
  }
}

// LINEに返信する関数
function sendLineReply(replyToken, message) {
  const url = 'https://api.line.me/v2/bot/message/reply';
  
  const payload = {
    'replyToken': replyToken,
    'messages': [{
      'type': 'text',
      'text': message
    }]
  };

  const options = {
    'method': 'post',
    'headers': {
      'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN
    },
    'contentType': 'application/json',
    'payload': JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, options);
}
  1. コード上部の 'ここにLINEの...''ここにGeminiの...' の部分を、ステップ1, 2でメモした内容に書き換えます。
    • ※シングルクォーテーション ' ' は消さないで、その中身だけ書き換えてください。
  2. Ctrl + S (Macは Cmd + S) で保存します。

ステップ4:デプロイ(世界へ公開)

ここが最大のつまずきポイントです。慎重に進めてください。

  1. 画面右上の青いボタン 「デプロイ」「新しいデプロイ」 をクリック。
  2. 「種類の選択」の歯車アイコン ⚙️ を押し、 「ウェブアプリ」 を選択。
  3. 以下の設定にします(重要!):
    • 説明: 空欄でもOK
    • 次のユーザーとして実行: 「自分」
    • アクセスできるユーザー: 「全員」
      • ※ここを「全員」にしないと、LINEからの通信がブロックされて動きません。
  4. 「デプロイ」ボタンをクリック。
  5. 「アクセスを承認」 という画面が出ます。
    • 自分のアカウントを選択 → 「このアプリはGoogleにより確認されていません」と出たら左下の 「詳細」「(安全ではないページ)に移動」「許可」 と進みます。
    • ※自作アプリなので警告が出ますが、自分しか使わないので安全です。
  6. 完了すると 「ウェブアプリのURL」 が発行されます。これをコピーします。

ステップ5:LINEと紐付け

最後に、LINE側に「このURLにメッセージを送ってね」と教えます。

  1. LINE Developersコンソール に戻り、「Messaging API設定」タブを開きます。
  2. 「Webhook URL」 の「編集」をクリックし、先ほどコピーしたURLを貼り付けて「更新」します。
  3. その下に出る 「Webhookの利用」 スイッチを必ず ON にします。
  4. 「検証」ボタンを押し、「成功」と表示されれば完了です!

実際に試してみる

LINE Developersの画面にあるQRコードをスマホで読み取り、友だち追加してください。
「こんにちは」「今日の夕飯の献立を考えて」などと話しかけ、AIから返信が来れば大成功です!

おわりに

この構成は、PCの電源を切ってもGoogleのサーバー上で動き続けます。
大学の課題制作や、ちょっとしたツール作りに最適です。慣れてきたら、プロンプトを変えて「関西弁で話すBot」や「英語の先生Bot」などにカスタマイズしてみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?