はじめに
本記事は、IBM Cloud上のNode-REDとLINE Messaging APIを利用した、LINE Botの作成方法を記載しています。
※2021年8月時点での手順です(クラウドサービスのため変更されている可能性あり)
前提
本記事の手順を進めるにあたり、下記の3つが前提条件です。
-
LINEアカウントを持っていること
- 通常のLINEを利用できるもの
- もしLINEを使っていない場合は、アカウントの作成が必要
-
IBM Cloudアカウントを持っていること
- ライトアカウントでもPAYGアカウントでもどちらでも大丈夫
- もしアカウントを持っていない場合は、こちらからアカウント登録
-
IBM Cloud上でNode-REDフローエディタの環境構築が済んでいること
- もし環境構築が済んでいない場合は、こちらの記事を参考に環境構築
準備手順
LINE Messaging API
LINE Developersにログイン
こちらからLINE Developersサイトを開きます。
LINE Developersサイトの右上の「ログイン」ボタン(下記画像の赤枠部分)をクリックします。
「ログイン方法選択」画面に遷移します。
そして、「LINEアカウントでログイン」ボタン(下記画像の赤枠部分)をクリックします。
LINEアカウントで設定しているメールアドレスとパスワードを入力するか、もしくはQRコードログインを使用してLINEアカウントでログインしてください。
LINE Messaging API channelの作成
Providersの横の「Create」ボタン(下記画像の赤枠部分)をクリックします。
「Provider name」を入力し、「Create」ボタン(下記画像の赤枠部分)をクリックします。
「Channels」タブを選択します。
「Create a Messaging API channel」(下記画像の赤枠部分)を選択します。
下記画像の「Create a channel」ページに遷移し、次の必須項目を入力する。
- Channel name:チャンネル名
- Channel description:チャンネル概要
- Category:LINE Botの利用種類
- Subcategory:Categoryを細分化したもの
2つの利用規約を確認し、同意してチェックします。
そして、「Create」ボタン(下記画像の赤枠部分)をクリックします。
内容を確認し「OK」ボタン(下記画像の赤枠部分)をクリックします。
内容を確認し「同意する」ボタン(下記画像の赤枠部分)をクリックします。
「Basic setting」タブを選択し、次の項目を設定します。
- Channel Secret:再発行(後に使用するため、メモ帳にコピー)
「Messaging API setting」タブを選択し、次の項目を設定します。
- QRコード:スマホで読み込んで友達登録
- Webhook URL:後ほどNode-REDで取得するURL(https://<"Node-REDのホスト名">.mybluemix.net/line)を設定
- Use webhook:オン
- Auto-reply messages:応答メッセージをオフ
- アクセストークン:後に使用するため、メモ帳にコピー
Node-RED
IBM Cloudにログイン
ログイン画面にIBMid(登録メールアドレス)とパスワードを入力し、IBM Cloudにログインします。
ログインすると、ダッシュボード(下記画像)が表示されます。
Node-REDにLINE Bot SDKをセットアップ
「リソースの要約」カードの「Apps」(下記画像の赤枠部分)を選択します。
作成したNode-REDのApps(下記画像の赤枠部分)を選択します。
作成したNode-REDのAppsの「アプリの詳細」画面から「デプロイメント自動化」カードの「名前」項目(下記画像の赤枠部分)を選択します。
「Eclipse Orion Web IDE」カードを選択します。
「package.json」を開きます。
下記項目を追記します。
「dependencies」の中に以下を追加
"@line/bot-sdk": "*"
「bulemix-settings.js」を開きます。
下記項目を追記します。
「functionGlobalContext」の中に以下を追加
linebot: require('@line/bot-sdk')
左のメニューバーからGitを選択し、「コミットメッセージ」を入力し、右上の「コミット」ボタンをクリックします。
「アクティブ・ブランチ(master)」カードの「プッシュ」ボタンをクリックします。
「Delivery Pipeline」カードが「成功」になるまで待ちます。
「成功」になれば、Node-REDでLINE Bot SDKの利用が可能になります。
Node-REDエディタ
「リソースの要約」カードの「Cloud Foundryアプリ」(下記画像の赤枠部分)を選択します。
「リソース・リスト」から「Node-REDアプリ」(下記画像の赤枠部分)を選択します。
「アプリURLにアクセス」(下記画像の赤枠部分)をクリックします。
Node-REDのトップ画面(下記画像)に遷移します。
「Go to your Node-RED flow editor」ボタン(下記画像の赤枠部分)をクリックします。
「ユーザ名」と「パスワード」を入力し、「ログイン」ボタン(下記画像の赤枠部分)をクリックします。
Node-REDフローエディタ(下記画像)が立ち上がります。
オウム返しBotの作成
ノード置き場から以下のノードを取り出し取り出し、下記の項目を作業エリアに配置・設定します。
- 「ネットワーク」エリアにある「http」ノード
- POSTに設定
- URL欄にWebページの表示用のアドレス (今回は "/line") を入力
- 「完了」をクリック
- 「機能」エリアの「switch」ノード
- 下の分岐
- 「機能」エリアにある「function」ノード
- 中身を以下のように記載
-
LINE Messaging API channelの作成で発行した「チャンネルシークレット」と「チャンネルアクセストークン」を
<YOUR_TOKEN>
と<YOUR_SECRET>
に入力します。
-
LINE Messaging API channelの作成で発行した「チャンネルシークレット」と「チャンネルアクセストークン」を
- 中身を以下のように記載
- 「機能」エリアにある「function」ノード
const line = context.global.linebot;
const config = {
channelAccessToken: '<YOUR_TOKEN>',
channelSecret: '<YOUR_SECRET>',
};
const client = new line.Client(config);
const event = msg.payload.events[0];
const received_msg = event.message.text;
var massage = { type: 'text', text: received_msg };
client.replyMessage(event.replyToken, massage);
return msg;
これでオウム返しBotの作成が完了しました。
ラインのアプリからメッセージを送ると、送ったメッセージがそのまま返ってきます。