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

アプリ開発

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を始めよう
LINE Developersサイトは開発者向けのポータルサイトです。LINEのさまざまな開発者向けプロダクトを利用するための、管理ツールやドキュメントを利用できます。LINEログインやMessaging APIを活用して、アプリやサービスをもっと便利に。

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

Messaging API設定
LINE BOT

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

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

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

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

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

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

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

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

Functions 有効

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

アップグレード

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

Google Cloud Functions でAPIを公開して Javascript から呼び出す
ちょっと手こずったので、忘れないうちに備忘録しときます。環境Windows 11 Home 21H2 22000.434Node.js v16.13.1Cloud Functions の準備Google F...

オウム返しプログラム

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

npm install -g firebase-tools

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

firebase init

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

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();
        });
    }
});
functions index.js

デプロイ

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

firebase deploy --only functions

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

トリガーURL

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

Webhook URL 登録

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

Webhookの利用

動作確認

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

LINE BOT

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

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

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

応答メッセージオフ
LINE BOT
タイトルとURLをコピーしました