1. ホーム
  2. /
  3. [LINE BOT]
  4. /
  5. 【GAS×LINE BOT】スプレッドシートの情報を自動でLINEに通知する方法

【GAS×LINE BOT】スプレッドシートの情報を自動でLINEに通知する方法

【GAS×LINE BOT】スプレッドシートの情報を自動でLINEに通知する方法

この記事では、GAS (Google Apps Script) を使って、LINE BOTがスプレッドシートの情報を自動で通知する仕組みを構築する方法を解説します。

例えば、「買い物リスト」とLINEで送信すると、スプレッドシートに記載されたリストを返信してくれる、といった応用が可能です。日々のタスク管理や情報共有など、様々な場面で活用できるテクニックです。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索
LINE BOT チャットボット 作り方
LINE BOT チャットボット 作り方 を各ショップで検索

はじめに:実現できること

  • LINEで特定のキーワード(例:「買い物リスト」)を送信する。
  • GASがキーワードを検知し、指定したスプレッドシートのデータを読み込む。
  • 読み込んだデータを整形し、LINE BOTを通じて返信する。

この仕組みを使えば、手動でスプレッドシートを開く手間なく、LINEから手軽に情報を確認できるようになります。

実装の全体像

処理の流れは以下の通りです。

  1. LINE BOTの準備: LINE DevelopersでMessaging APIチャネルを作成し、アクセストークンを取得します。
  2. スプレッドシートの準備: 通知したい情報(例:買い物リスト)を記入したスプレッドシートを用意します。
  3. GASコーディング: Googleスプレッドシートに紐づいたGASプロジェクトを作成し、コードを記述します。
  4. デプロイ: GASプロジェクトをウェブアプリケーションとしてデプロイします。
  5. Webhook設定: LINE DevelopersでWebhook URLを設定し、LINEからの通知がGASに届くようにします。

過去の記事でLINE BOTの基本的な設定方法を解説していますので、初めての方はそちらもご覧ください。

【GAS】Google Apps Scriptで簡単なLINE BOTを作る方法(コピペ可)
【GAS】Google Apps Scriptで簡単なLINE BOTを作る方法(コピペ可)

Google Apps Script(GAS)を使って、特定のキーワードに反応するシンプルなLINE BOTを作成する手順を解説します。Googleアカウントさえあれば無料で開発可能。初心者でもコピペで実装できるよう、コードと設定方法を詳しく紹介します。

GASのコード実装

GASのスクリプトエディタに、以下の3つのファイル(main.gs, messageController.gs, replyLine.gs)を作成してコードを記述します。

1. Webhookを受け取る処理 (main.gs)

LINEプラットフォームからのWebhook(POSTリクエスト)を受け取り、イベントの種類に応じて処理を振り分けるメインの関数です。

const TOKEN = 'LINEのトークンを指定(取得方法:https://arukayies.com/gas/line_bot/gettoken)';

//LINEから送信されたデータを処理する
function doPost(e) {
  //レスポンスを取得 */
  const responseLine = e.postData.getDataAsString();
  //JSON形式に変換する
  const responseLineJson = JSON.parse(responseLine).events[0];
  //イベントへの応答に使用するトークンを取得
  const replyToken = responseLineJson.replyToken;
  
  //メッセージイベントの場合
  if (responseLineJson.type == 'message') {
    messageController(responseLineJson, replyToken);
  } 
}

2. メッセージを制御する処理 (messageController.gs)

受信したメッセージの内容を判定し、特定のキーワード(今回は「買い物リスト」)が含まれている場合にスプレッドシートの情報を取得・返信する処理を実行します。

//メッセージイベントの処理
function messageController(event, replyToken) {
  //メッセージを取得
  const message = event.message;
  //本文を取得
  const text = message.text;

  //本文に'買い物リスト'と送られてきた場合
  if (text.indexOf('買い物リスト') > -1) {
    //送信するメッセージの変数
    let postMessage = '';
    //シートを取得
    const sheet = SpreadsheetApp.openById("通知させたいシートのIDを指定");// 通知させたいシートのIDを指定
    //シートの中身を2次元配列で取得  
    const sheetData = sheet.getDataRange().getValues();

    //シートの中身を送信するメッセージにすべて入れる     
    for (let row in sheetData) {
      postMessage = postMessage + sheetData[row][0] + '\n';
    }

    //LINEのメッセージ形式にする
    const LineMessageObject = [{
      'type': 'text',
      'text': postMessage
    }];

    //LINEに返信する
    replyLine(LineMessageObject, replyToken);
  }
}

SpreadsheetApp.openById("...") の部分には、対象のスプレッドシートのIDを指定してください。

3. LINEに返信する処理 (replyLine.gs)

messageControllerから渡されたメッセージデータを元に、LINEのReply Message APIへリクエストを送信し、ユーザーに返信します。

//LINEに返信する処理
function replyLine(LineMessageObject, replyToken) {
	const replyHeaders = {
		'Content-Type': 'application/json',
		'Authorization': 'Bearer ' + TOKEN
	};
	const replyBody = {
		'replyToken': replyToken,
		'messages': LineMessageObject
	};
	const replyOptions = {
		'method': 'POST',
		'headers': replyHeaders,
		'payload': JSON.stringify(replyBody)
	};
	UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', replyOptions);
}

デプロイとWebhook設定

コードの実装が完了したら、ウェブアプリとしてデプロイし、発行されたURLをLINE DevelopersのWebhookに設定します。詳しい手順は以下の記事を参考にしてください。

動作確認

実際にLINE BOTに「買い物リスト」と話しかけてみましょう。スプレッドシートに書かれた内容が返ってくれば成功です。

「買い物リスト」と送信

スプレッドシートの内容が通知される様子

まとめ

今回は、GASとLINE BOTを連携させてスプレッドシートの情報を通知する方法を紹介しました。

この仕組みを応用すれば、Googleカレンダーの予定を通知したり、タスクリストを共有したりと、様々な業務効率化や情報共有の自動化が可能です。ぜひ、ご自身のアイデアで活用してみてください。

より発展的な内容として、買い物リストを管理するLINE BOTも作成しました。こちらも参考にしていただけると幸いです。

【GASだけで完結】LINEで使える買い物リスト管理BOTの作り方をコード付きで解説
【GASだけで完結】LINEで使える買い物リスト管理BOTの作り方をコード付きで解説

Google Apps Script(GAS)とLINE Messaging APIを使って、オリジナルの買い物リスト管理LINE BOTを作成する具体的な手順を解説します。コピペで使える全コードを公開しており、初心者でも簡単に実装できます。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索
LINE BOT チャットボット 作り方
LINE BOT チャットボット 作り方 を各ショップで検索

関連記事

GAS `getWraps()`でスプレッドシートのテキスト折り返しを一括制御!応用例と最適化

GAS `getWraps()`でスプレッドシートのテキスト折り返しを一括制御!応用例と最適化

Google Apps Script(GAS)でスプレッドシートを効率的に操作する際、セルのテキスト折り返し設定を一括で管理することは、大規模なデータセットの視認性を高め、プロフェッショナルなレポート作成において不可欠です。getWraps()メソッドは、このテキスト折り返し設定を複数のセルから一度に取得するための強力なツールです。

本記事では、GASのRange.getWraps()メソッドを徹底解説します。基本的な使い方から、データ量が多い場合のパフォーマンス最適化(キャッシュ活用)、さらには取得した情報を元にした列幅の自動調整、堅牢なスクリプト開発のためのエラー処理、そしてsetWraps()メソッドと連携した一括設定方法まで、具体的なコードを交えて分かりやすく紹介します。

GAS `getWrap()` / `getWraps()`徹底解説!スプレッドシートのテキスト折り返しを自動調整

GAS `getWrap()` / `getWraps()`徹底解説!スプレッドシートのテキスト折り返しを自動調整

Google Apps Script (GAS) を使ってスプレッドシートを自動化する際、セルの**「テキスト折り返し設定」をプログラムで自在に制御する**ことは、データの視認性を高め、プロフェッショナルなシートレイアウトを維持するために不可欠です。本記事では、GASの主要メソッドであるgetWrap()getWraps()に焦点を当て、その基本的な使い方からSEOを意識した応用テクニックまで、徹底的に解説します。

この記事では、以下の疑問を解決します。