未分類

LINEbotの「脳」を無料で作る! Google Apps Script(GAS)とは?

Botの「箱」(LINE公式アカウント)と「鍵」(チャネルアクセストークン)は準備できました。しかし、このBotはまだただの箱です。

次に必要なのは、「いつ」「何を」通知するかを判断する「脳」です。

この脳の役割を担うのが、私たちズボラ開発者の最強の味方、Google Apps Script (GAS)です!

💡 GASとは? なぜLINE Botと親和性が高いのか

1. GASとは?

Google Apps Script(GAS)とは、Googleが提供する、無料で使えるプログラミング環境のことです。

Gmail、Googleスプレッドシート、Googleカレンダーなど、普段あなたが使っているGoogleのサービスと連携して動く小さなプログラムを簡単に作ることができます。

サーバー代もドメイン代も全て無料。超個人的な自動化に、これ以上のツールはありません。

2. LINE Botとの親和性が最強な理由

GASは、「条件を満たしたら通知を送る」というLINE Botの基本的なロジックを、最も簡単かつ無料で実現できるツールだからです。

GASには、外部のウェブサービスにアクセスするための機能(UrlFetchApp)が標準で備わっています。

これと、先回取得したLINEの「合鍵」(アクセストークン)を組み合わせるだけで、LINE Messaging APIを介してあなたのLINEに通知を送信できるのです。

GASの機能役割(Bot開発において)
Googleサービス連携スプレッドシートの残高、カレンダーの予定などをトリガー(きっかけ)にする。
時間ベースの実行「毎日朝7時に」「毎週月曜日の夜」など、通知のタイミングを自動設定する。
APIアクセス機能LINEのMessaging APIに「通知を送れ」という命令を送信する。

ステップ3:Google Apps ScriptでBotの「脳」を作る!

それでは、Botの「脳」となるGASのプロジェクトを作成していきましょう。これも非常に簡単です!

3-1. Google Apps Scriptにアクセス

まずはGASの作業画面を開きます。

👉 [Google Apps Scriptの公式ページはこちらから] (https://script.google.com/home)

  • Googleアカウント(普段使っているGmailのアカウント)でログインします。

3-2. 新しいプロジェクトを作成

  • ログイン後、画面左上にある「新しいプロジェクト」ボタンをクリックします。
  • これで、コードを書き込むためのまっさらなエディタ画面が表示されます。

3-3. プロジェクト名の変更

  • 画面上部の「無題のプロジェクト」という部分をクリックし、分かりやすい名前に変更しましょう。
  • (例:「MyLINE_Bot_Notifier」など)

💡 Messaging APIとの連携方法とロジックの概要

連携方法:合鍵を使ってLINEの門を叩く

連携はシンプルです。GASのコードの中に、以下の2つを記述するだけです。

  1. ステップ1で取得した「合鍵」(チャネルアクセストークン)
  2. LINE Messaging APIの「通知を送るためのURL」

GASがこのURLと合鍵を使ってLINEのサーバーにアクセスし、「この内容のメッセージを、じふのLINEに送ってください!」とお願いする、という仕組みです。

使用方法:条件を満たしたら通知を送るロジック

これがBot開発の醍醐味です。GASで実現したいロジックの構造は以下のようになります。

もし(IF)
  - スプレッドシートの残高が10万円を下回ったら
  - 今日の天気予報で「強風」が含まれていたら
  - Googleカレンダーに「ジムの予約」が入っていたら
↓
そのとき(THEN)
  - LINE Messaging APIに通知を送信する
  - メッセージ内容は「残高がヤバいよ!」
  - メッセージ内容は「洗濯物を取り込め!」
  - メッセージ内容は「ジムに行く時間ですよ!」

GASに「合鍵」を渡し、感動の初通知(Hello World)を送る!

いよいよクライマックスです!「箱」(Bot)、「鍵」(トークン)、「脳」(GAS)を繋ぎ合わせ、自動化への第一歩となる通知をあなた自身に送ります。

Botが通知を送る「仕組み」と宛先IDの確認

GASにコードを書く前に、2つの重要な情報が必要です。

① 送信先のID(User ID / Group ID)

Botからあなた自身にメッセージを送るには、あなたのLINEアカウントを特定するためのIDが必要です。これがUser IDです。

チャンネル基本設定の下部に書いてあります

【重要】あなたのUser IDを取得する方法(簡易版)

これでBotがあなたを認識し、通知を送る対象を特定できます。

今回は最も簡単な「プッシュ通知」のために、一旦このIDをコードに直接埋め込みます。

② 合鍵(チャネルアクセストークン)

ステップ1で取得し、安全な場所に保存した、あの長い文字列です。

Hello World通知をAIに生成させる!

先ほど作成したGASのプロジェクトを開いてください。最初からある function myFunction() { ... } の中身を、以下のコードにまるっとコピペして上書きしてください。

赤字のところにアクセストークンとIDをコピペ

/**
 * じふの超個人的自動化Bot 第1回
 * LINE Messaging APIを使って自分宛に「Hello World」を送信するGASコード
 * * - この関数を実行すると、設定されたUser ID宛にLINE通知が届きます。
 */
function sendTestNotification() {
  // === 1.【設定完了】合鍵(チャネルアクセストークン)をここに貼り付け ===
  // ステップ2で発行した、Botの鍵となる長い文字列です。
  const CHANNEL_ACCESS_TOKEN = "チャネルアクセストークン";

  // === 2.【設定完了】メッセージを届けたい宛先IDをここに貼り付け ===
  // Botを友だち追加し、メッセージを一度送ったあなたのUser ID(またはグループID)
  // 💡 今回は、あなたのUser IDを一時的に使用します。次回、正式なID取得方法を説明します。
  const USER_ID = "User ID"; 

  // LINE Messaging APIのエンドポイント(メッセージ送信先)
  // 💡 修正完了: 正しいURL文字列を使用しています。
  const LINE_PUSH_URL = "https://api.line.me/v2/bot/message/push";

  // 送信するメッセージデータ(JSON形式)
  // type: text で、テキストメッセージを指定しています。
  const payload = {
    "to": USER_ID,
    "messages": [
      {
        "type": "text",
        "text": "Hello World! 🎉\n超個人的な自動化Bot、起動成功!\n(じふのブログより)"
      }
    ]
  };

  // HTTPリクエストのオプション設定
  const options = {
    "method": "post",
    "contentType": "application/json",
    // 認証情報(合鍵)をリクエストヘッダーに含めます
    "headers": {
      "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN
    },
    // 送信データ(JSON文字列に変換)
    "payload": JSON.stringify(payload)
  };

  try {
    // 外部APIへリクエストを送信!
    // UrlFetchApp.fetchは、純粋なURL文字列を引数として受け取ります。
    const response = UrlFetchApp.fetch(LINE_PUSH_URL, options);
    Logger.log("LINE通知の送信結果: " + response.getContentText());
    
    // 成功メッセージ
    if (response.getResponseCode() === 200) {
      Logger.log("✅ 通知が成功しました。LINEを確認してください!");
    } else {
      // 失敗時のエラー内容をログに出力
      Logger.log("❌ 通知失敗。エラーコード: " + response.getResponseCode());
    }

  } catch (e) {
    Logger.log("❌ 処理中にエラーが発生しました: " + e.toString());
  }
}

このコードは、「LINEの通知URL」と「合鍵」を使って、あなたのLINEに「Hello World」というテキストを送るだけのシンプルな処理です。

初めての実行(権限付与)

さあ、いよいよ実行です!

  1. GASエディタ上部にある、関数選択ドロップダウンが sendTestNotification になっていることを確認します。
  2. その横にある**「実行」**ボタン(▶マーク)をクリックします。

🚨 権限の確認が必要です

  • 初めて実行するときは、Googleアカウントの認証が必要です。「Googleアカウントの権限を確認」というポップアップが出たらクリックし、画面の指示に従ってGASに権限を付与してください。
    • 「安全でないページ」と表示されることがありますが、これはあなたが作成したプログラムなので安心して「許可」をクリックして進んでください。

✅ 実行結果の確認

  • 実行が完了したら、GAS画面下の「ログ」または「実行ログ」を確認します。
  • ログに ✅ 通知が成功しました。LINEを確認してください! と表示されていれば大成功です!

そして、あなたのLINEアプリを開いてみてください...!

あなたのBotから、**「Hello World! 🎉 超個人的な自動化Bot、起動成功!」**という感動のメッセージが届いているはずです。

まとめ:あなたはもう立派なBot開発者!

おめでとうございます!これであなたは、Botの「箱」「鍵」「脳」を自力で接続し、実際に通知を飛ばすことに成功しました。

次回予告:

今回のコードは「実行」ボタンを押さないと動きませんでしたが、次はいよいよ**「毎日朝7時に自動で実行する」という「自動化」のキモとなる「トリガー設定」**を解説します!

-未分類