技術ブログ

GASでLINE Bot開発!Messaging API連携入門

/ 初心者向け

GASでLINE Bot開発!Messaging API連携入門

Google Apps Script (GAS) でLINE Bot開発!Messaging API連携入門

皆さん、こんにちは!Google Apps Script (GAS) を活用した業務効率化や自動化について発信しているブロガーです。

今回は、今やビジネスコミュニケーションに欠かせないLINEと、Google Apps Script (GAS) を連携させて、オリジナルのLINE Botを開発する方法について、初心者の方にも分かりやすく解説していきます。

なぜGASとLINE Messaging APIなのか?

GASは、Google Workspace(Gmail, Google Drive, スプレッドシートなど)と連携して様々な自動化を実現できるJavaScriptベースのプラットフォームです。特別な開発環境を準備することなく、Webブラウザ上でコーディングと実行が可能です。

一方、LINE Messaging APIは、LINE公式アカウントを通じてユーザーと双方向のコミュニケーションを取るためのAPIです。これにより、メッセージの送受信、スタンプ、画像、リッチメニューの表示など、様々な機能を実現するボットを作成できます。

この二つを組み合わせることで、例えば以下のようなことが実現できます。

  • Googleフォームの回答をLINEで通知
  • スプレッドシートのデータを元にLINEでメッセージを送信
  • 簡単なFAQボットの作成
  • 曜日や時間に合わせた定型メッセージの自動送信

連携の全体像

GASとLINE Messaging APIの連携は、主に以下の流れで行われます。

1. LINE Developersでの設定: LINE公式アカウントの作成、Messaging APIチャネルの有効化、Webhook URLの設定を行います。

2. GASでのスクリプト作成: LINEからのWebhookリクエストを受け取り、Messaging APIを使ってLINEに返信するためのGASコードを記述します。

3. GASのデプロイ: 作成したGASをWebアプリケーションとしてデプロイし、LINE Developersで設定したWebhook URLとして指定します。

STEP 1: LINE Developersでの初期設定

まずは、LINE Developersのサイトで必要な設定を行います。

1. LINE公式アカウントの作成: LINE Official Account Managerから、まだ公式アカウントがない場合は作成します。

2. Messaging APIチャネルの作成: LINE Developersのコンソールで、新規チャネルを作成します。「Messaging API」を選択し、必要な情報を入力してください。ここで「Channel secret」と「Channel access token」が発行されます。これらはGASからLINE APIを呼び出す際に必要になるので、必ず控えておきましょう。

3. Webhookの設定: 作成したMessaging APIチャネルの設定画面で、「Webhook URL」を設定します。このURLは、後ほどGASをデプロイした際に取得できるURLになります。

STEP 2: GASでのスクリプト作成

次に、GASでLINEからのメッセージを受け取り、返信するスクリプトを作成します。

GASのエディタを開き、新しいプロジェクトを作成します。Code.gs というファイルに以下のコードを記述します。

function doPost(e) {
  // LINEから送信されたイベントデータを取得
  var events = JSON.parse(e.postData.contents).events;

  // 各イベントを処理
  for (var i = 0; i < events.length; i++) {
    var event = events[i];

    // メッセージイベントの場合
    if (event.type === 'message') {
      var message = event.message;
      var replyToken = event.replyToken;

      // テキストメッセージの場合
      if (message.type === 'text') {
        var receivedText = message.text;
        var replyText = '「' + receivedText + '」と入力されましたね!';

        // LINE Messaging APIに返信メッセージを送信
        replyMessage(replyToken, replyText);
      }
    }
  }

  // 200 OK を返す
  return ContentService.createTextOutput(JSON.stringify({'content': 'OK'})).setMimeType(ContentService.MimeType.JSON);
}

function replyMessage(replyToken, replyText) {
  var LINE_CHANNEL_ACCESS_TOKEN = 'YOUR_CHANNEL_ACCESS_TOKEN'; // ここに取得したアクセストークンを設定

  var url = 'https://api.line.me/v2/bot/message/reply';
  var headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN
  };

  var messageData = {
    'to': event.source.userId, // 送信元ユーザーID
    'messages': [
      {
        'type': 'text',
        'text': replyText
      }
    ]
  };

  var options = {
    'method' : 'post',
    'headers' : headers,
    'payload' : JSON.stringify(messageData)
  };

  UrlFetchApp.fetch(url, options);
}

【重要】

  • YOUR_CHANNEL_ACCESS_TOKEN の部分を、LINE Developersで取得した実際の「Channel access token」に置き換えてください。
  • このコードは、受け取ったテキストメッセージをそのまま返信するシンプルな例です。実際には、if (message.type === 'text') の部分で様々な条件分岐を行い、より複雑な処理を実装します。

STEP 3: GASのデプロイとWebhook設定

作成したGASをLINE DevelopersのWebhook URLとして登録するために、Webアプリケーションとしてデプロイします。

1. GASエディタのメニューから「デプロイ」>「新しいデプロイ」を選択します。

2. 「タイプ」で「ウェブアプリ」を選択します。

3. 「実行権限」を「私」にし、「アクセス権限」を「Anyone」(Anyone with Google account でも可)に設定します。

4. 「デプロイ」ボタンをクリックします。

5. デプロイが完了すると、「ウェブアプリのURL」が表示されます。このURLをコピーしてください。

6. LINE DevelopersのMessaging APIチャネル設定画面に戻り、「Webhook URL」に先ほどコピーしたGASのウェブアプリURLを貼り付け、「更新」をクリックします。

これで、GASとLINE Messaging APIの連携設定は完了です!

動作確認

LINEアプリで、作成したLINE公式アカウントを友だち追加し、何かメッセージを送ってみましょう。GASのスクリプトが実行され、設定した応答メッセージが返ってくれば成功です。

まとめ

今回は、GASとLINE Messaging APIを連携させて、簡単なLINE Botを作成する基本的な流れを解説しました。GASの強力な機能とMessaging APIを組み合わせることで、より高度で便利なLINE Bot開発が可能になります。ぜひ、色々な機能を追加して、あなただけのオリジナルLINE Botを作成してみてください!

次回は、画像やボタン、リッチメニューなどのより高度な機能をGASで実装する方法について解説する予定です。お楽しみに!

GAS自動化の導入相談

請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。

請求書自動生成ツールを見る / SNS自動投稿ツールを見る