LINE にメッセージを送ると、同じメッセージが返ってくる LINE BOT を作ります。
環境
- Windows 11 Home 21H2 22000.556
- node.js v16.13.1
- firebase-tools 10.5.0
作成方法
チャネルの作成
LINE の BOT を作るには LINE が提供している Messaging API を使う必要があります。
Messaging API を使うためにチャネルが必要なので、まずチャネルの作成を行います。
チャネルの作成方法は 公式 が詳しく説明しているので、そちらを参考にして進めるとよいです。
できたらチャネルの「Messaging API設定」タブを開いて、QRコードから友達登録をしておきます。


チャネルアクセストークンの発行
そのまま下にスクロールして、チャネルアクセストークンも発行しておきます。
発行したトークンを使うことで、メッセージが送れるようになります。

Firebase でアプリケーションの作成
Firebaseコンソール からプロジェクトを作成します。
アナリティクスは使わないので OFF にしておきます。
Functions タブに移動して Functions を有効にします。

Functions を使うにはプロジェクトをアップグレードさせる必要があるので、アップグレードさせます。

Functions の詳しい記事は前にも書いているので、そちらも参考にしてみて下さい。

オウム返しプログラム
まず、次のコマンドで Firebaseコマンドラインツール をインストールします。
npm install -g firebase-tools
次にプロジェクトを作成します。
firebase init
どのような構成にするか聞かれるので Functions にチェックを入れてプロジェクト作成をします。

「functions\index.js」を開いて、次のコードに変更します。
チャネルアクセストークンの部分は、ご自分のトークンを使ってください。
const functions = require('firebase-functions');
const https = require('https');
const channelAccessToken = 'チャネルアクセストークン';
exports.helloWorld = functions.https.onRequest((request, response) => {
if (request.method == 'POST') {
const url = 'https://api.line.me/v2/bot/message/reply';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${channelAccessToken}`
},
};
request.body['events'].forEach(event => {
const data = JSON.stringify({
replyToken: event['replyToken'],
messages: [
{
'type': 'text',
'text': event['message']['text']
}
]
});
const line = https.request(url, options);
line.write(data);
line.end();
});
}
});

デプロイ
次のコマンドで Firebase に Functions をデプロイすることができます。
firebase deploy --only functions
デプロイが成功するとトリガーURLが発行されるので、コピーして

LINE BOT の Webhook URL に登録します。

そのまま下にある Webhookの利用を有効にすると、オウム返しボットが完成します。

動作確認
試しにメッセージを送ると、同じメッセージが返ってくると思います。

なんか変なメッセージが返ってくる場合
メッセージありがとうございます!
申し訳ありませんが、このアカウントでは個別のお問い合わせを受け付けておりません。
次の配信までお待ちください(content)
これを消すには、応答メッセージをオフに設定するとなくなります。

