Firebase で オウム返しする LINE BOT を作る

Uncategorized
739 words

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 を使うためにチャネルが必要なので、まずチャネルの作成を行います。

チャネルの作成方法は 公式 が詳しく説明しているので、そちらを参考にして進めるとよいです。

https://developers.line.biz/ja/docs/messaging-api/getting-started/

できたらチャネルの「Messaging API設定」タブを開いて、QRコードから友達登録をしておきます。

Messaging API設定

LINE BOT

チャネルアクセストークンの発行

そのまま下にスクロールして、チャネルアクセストークンも発行しておきます。

発行したトークンを使うことで、メッセージが送れるようになります。

チャネルアクセストークン発行

Firebase でアプリケーションの作成

Firebaseコンソール からプロジェクトを作成します。

アナリティクスは使わないので OFF にしておきます。

Functions タブに移動して Functions を有効にします。

Functions 有効

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

アップグレード

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

https://noitaro.github.io/google-cloud-functions-javascript-call/

オウム返しプログラム

まず、次のコマンドで Firebaseコマンドラインツール をインストールします。

1
npm install -g firebase-tools

次にプロジェクトを作成します。

1
firebase init

どのような構成にするか聞かれるので Functions にチェックを入れてプロジェクト作成をします。

Functions にチェックを入れてプロジェクト作成

「functions\index.js」を開いて、次のコードに変更します。

チャネルアクセストークンの部分は、ご自分のトークンを使ってください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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();
});
}
});

functions index.js

デプロイ

次のコマンドで Firebase に Functions をデプロイすることができます。

1
firebase deploy --only functions

デプロイが成功するとトリガーURLが発行されるので、コピーして

トリガーURL

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

Webhook URL 登録

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

Webhookの利用

動作確認

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

LINE BOT

なんか変なメッセージが返ってくる場合

1
2
3
メッセージありがとうございます!
申し訳ありませんが、このアカウントでは個別のお問い合わせを受け付けておりません。
次の配信までお待ちください(content)

これを消すには、応答メッセージをオフに設定するとなくなります。

応答メッセージオフ

LINE BOT