LINE受信メッセージをスプレッドシートに転記する方法|Webhook × GAS
前回の記事では、LINEで受信したメッセージをスプレッドシートに転記するための4つの方法を紹介しました。
今回は、その中でもシンプルでリアルタイムな連携が可能な「Webhookを使用してメッセージを受け取る方法」についてご紹介します。
Webhookを活用すれば、LINEからのメッセージを即座にスプレッドシートに転記できるため、情報の整理や業務の効率化が容易になります。
完成イメージ
- LINEユーザーがメッセージを送信
ユーザーがLINEアプリを使って、公式アカウントにメッセージを送信します。 - LINEサーバーがWebhookをトリガー
LINEのサーバーは、新しいメッセージを受け取ると、事前に設定されたWebhook URL(Google Apps ScriptのURL)に対してメッセージデータを送信します。 - Google Apps Script(GAS)がリクエストを受信
Google Apps Scriptは、LINEから送られてきたデータを受け取り、メッセージの内容を解析します。 - メッセージ内容をスプレッドシートに保存
受け取ったメッセージの内容をGoogleスプレッドシートに保存します。
Webhookについて
Webhookは、あるイベントが発生したときに、その情報を特定のURLに対して送信する仕組みです。
LINEからスプレッドシートへのメッセージ転記では、ユーザーがLINEにメッセージを送ると、その情報がWebhookを介してGoogle Apps Script(GAS)に送られ、スプレッドシートに保存されます。
この仕組みでリアルタイムでのメッセージ受信と転記が可能になり、手動での入力作業を省いて業務の効率化が期待できます。
Webhookを使用してLINEメッセージをスプレッドシートに転記する手順
- LINE公式アカウントの作成
- Google Apps Script のURLを確認
- Webhook URLの設定
- GASスクリプトの作成
- WebhookとGASの連携確認
LINE公式アカウントの作成
Webhookを使うためにはLINE公式アカウントが必要です。
LINE公式アカウントの作成方法についてはこちらの記事をご参照ください。
Google Apps Script のURLを確認
Google Apps ScriptをWebhook URLとして設定するために、Google Apps Scriptの編集画面からURLを確認します。
Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。
GASエディタの画面右上にある「デプロイ」から「新しいデプロイ」を開きます。
デプロイとは、作成したプログラムをウェブ上で利用可能な状態にすることを指します。
設定アイコンを開き、その中の「ウェブアプリ」を選択します。
「説明」フィールドには、デプロイするウェブアプリが何をするものなのかを記載します。
例:「LINEメッセージの受信とスプレッドシートへの転記」など
アクセスできるユーザーを「全員」に設定します。
Google Apps ScriptのURLをコピーします。
この「ウェブアプリのURL」がWebhook URLになります。
Webhook URLの設定
Google Apps ScriptのウェブアプリURLを取得したら、次にLINE DevelopersコンソールでWebhook URLとして設定します。
チャネルの管理画面から、「Messaging API設定」のセクションを見つけてクリックします。
「Webhook URLを入力」というフィールドに、先ほどGASのデプロイで取得したURLを貼り付けます。
「検証」ボタンをクリックすると、LINE DevelopersはそのURLにテストリクエストを送信し、応答が正しいかどうかを確認します。
正常に設定されている場合、「検証成功」のメッセージが表示されます。
これにより、GASのURLが正しく設定されていることが確認でき、LINEからのメッセージが問題なく転送できます。
「Webhookの利用」のスイッチを「有効」にします。
GASスクリプトの作成
転記先のスプレッドシートを作成し、そのIDとシート名をメモしておきます。
GASでこのIDとシート名を使ってスプレッドシートにアクセスします。
スプレッドシートIDは、URLの中の /d/
と /edit
の間にある部分です。
シート名(例):LINE受信メッセージ
1行目をヘッダー行として以下のような項目を入力します。(任意)
項目名 | |
---|---|
A1 | 日時 |
A2 | ユーザーID |
A3 | 受信メッセージ |
Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。
function myFunction(){
}
が最初から入っているため、消去して以下のスクリプトを貼り付けます。
function doPost(e) {
const spreadsheetId = 'スプレッドシートのIDをここに入力';
const sheetName = 'シート名をここに入力';
const sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
const data = JSON.parse(e.postData.contents);
const userMessage = data.events[0].message.text;
const userId = data.events[0].source.userId;
const timestamp = new Date();
sheet.appendRow([, timestamp, userId, userMessage]); // 2行目以降に転記するために1列目は空にします
return ContentService.createTextOutput(JSON.stringify({status: 'success'})).setMimeType(ContentService.MimeType.JSON);
}
スクリプトの説明
スクリプトを書いたら、名前を付けて保存します。
(例:「LINE受信メッセージ」)
なお、今回のスクリプトにおいては、LINEメッセージ受信すると自動的に実行されます。
そのため、GASエディタの実行ボタンを押す必要はありません。
(押してもエラーとなります)
WebhookとGASの連携確認
LINEアプリから作成した公式アカウント宛にメッセージを送信します。
スプレッドシートを開き、LINEで送信したメッセージが自動的に追加されていることを確認します。
これで、LINEのメッセージをスプレッドシートに転記する一連の手順が完了です。
まとめ
Webhookを使ってLINEメッセージをスプレッドシートに自動で転記することで、手動での入力作業を減らし、情報の整理を効率化することができます。
今回紹介した方法はリアルタイムでのメッセージ管理に適しています。
弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。
GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。
また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
貴方の業務改善を全力でサポートいたします。
コメント