さて、実際にLINE Botを作ってみたいと思います。
LINE Botは、プログラミングにより作成するわけですが、作成方法は何種類もあります。ここでは、PHPというプログラミング言語を用いたLINE Bot開発について紹介しますが、次の環境を用意する必要があります。
- ネットワークに繋がっているサーバーにログインできる
- そのサーバーには、PHPがインストールされている
- そのサーバーでは、Webサービスが常時起動している
- そのWebサービスは、SSL(https)対応している
エンジニアでもない人がこれら4つの条件が揃った開発環境を用意するのは難しいと思いますが、とても簡単に用意する方法があります。
それは、レンタルサーバーを借りて、WordPressを導入することです。
Xサーバーは常時ネットワーク接続されたレンタルサーバーで、10日間の無料お試し期間があり、SSL(https)対応も無料で行うことができます。また、「WordPressの簡単インストール」という機能を使うと、登録からわずか1分ほどでWordPressをインストールできます。
WordPressは、PHP言語で作られたプログラムのため、2の条件も自動的にクリアしていることになります。
そこで、LINE Botを作るための準備として、XserverにWordPressをインストールするところからスタートしたいと思います。
XserverにWordPressをインストール
Xserverに登録する際に、「WordPressクイックスタート」という言葉が目に入ると思いますが、WordPressクイックスタートは使わない(チェックを外す)ようにしてください(即座に費用がかかるため)。プランの選択では、安くて機能が豊富な上、10日間の無料期間があるX10プランを選ぶことをオススメします。
登録の際に、サーバーID(サイトのURLに付く名前)を決めることができますが、こちらは何でも構いません。
登録後、ブラウザでXserverのトップページにアクセスし、上段メニュ「ログイン」-「サーバーパネル」を押します。

画面を下にスクロールして、「WordPress簡単インストール」を押します。

WordPress簡単インストールページの「WordPressインストール」タブで、次の4項目を入力して「確認画面へ進む」→「インストールする」と進みます。

画面が移動すると、インストールの完了です。
インストール後の画面に表示される「WordPressの管理画面URL」へ進み、初期登録ユーザー(管理用ユーザー)でログインできることを確認してください。

SSL(https)設定
次に、SSL設定を行います。
Xserverのサーバーパネルに戻りページ上段の方にある「SSL設定」を押します。

「独自SSL設定追加」タブで、「確認画面へ進む」→「追加する」を押します。


「追加する」を押してから数分〜1時間で、SSLの設定が完了します。
LINE Developersへの登録
次に、LINE Developersに登録します。
LINE Developersにアクセスして「ログイン」へ進み、「LINEアカウントでログイン」を押します。
ログインに成功すると、プロバイダーの作成画面・選択画面に移りますので、「作成」を押し、「Messaging API」を選択します。

すると、入力フォームやチェック項目が表示されるため、次の情報を入れていきます。
チャネルの種類 | Messaging API(選択) |
プロバイダー | 自分で決めた名前(何でもOK) |
チャネルアイコン | 画像ファイルをアップロード |
チャネル名 | LINE Botの名前(後で変更できます) |
チャネル説明 | LINE Botの説明欄に表示されます |
大業種 | サービスの職種を選択します ここでは「ウェブサービス」とします。 |
小業種 | サービスの詳しい職種を選択します ここでは「ウェブサービス(教育)」とします。 |
メールアドレス | ご自身のメールアドレスを入力します。 |
必須項目を入力したら、「作成」→「同意する」と進むと、チャネルが作成されます。
チャネルの画面では様々な情報が掲載されていますが、ここではLINE Botの開発・実行に必要最低限の設定項目を紹介します。
タブメニュー | 設定・確認項目 | 説明 |
---|---|---|
チャネル基本設定 | チャネルシークレット | プログラム内で使用 |
チャネル基本設定 | あなたのユーザーID | プログラム内で使用(必須ではない) |
Messaging API | QRコード | スマホのカメラをかざして友達追加してください |
Messaging API | Webhook URL | 編集ボタンを押し、 サイトのURL/messaging-api/bot.php 今回の例では、 https://●●.xsrv.jp/messaging-api/bot.php を入力して保存します。 |
Messaging API | Webhookの利用 | 「ON」に設定(緑に反転) |
Messaging API | チャネルアクセストークン | プログラム内で使用(発行を押し、表示される) |
続いて、LINE Official Account Managerのリンクへ進み、

応答設定の画面で、「応答モード:Bot」、「応答メッセージ:オフ」、「Webhook:オン」に設定します。

以上で、LINEサイトでの設定は完了です。
LINE Messaging APIの初期設定
次に、Xserverで初期設定を行います。サーバーにログインし、少しの操作が必要になるため、ここが一番の難関になるかもしれません。ログイン方法については、XserverのSSH接続機能についてをご覧ください。
XserverにSSHでログインしたら、LINE Messaging APIのSDK(ツール)をインストールします。
$ cd ●●.xsrv.jp/public_html (●●はXserver登録時に決めた名前)
$ mkdir messaging-api
$ cd messaging-api
$ composer require linecorp/line-bot-sdk
そして、「●●.xsrv.jp/public_html/messaging-api」ディレクトリ(フォルダ)の中に、以下のコードを書いた「bot.php」という名前のファイルを置けば、LINE Botの完成です。
サーバーにファイルを配置する方法は、Xserverのファイルマネージャー(ファイル管理)を使うと便利です。パソコン上で保存したファイルをアップロードできます。


「チャネルシークレット」と「チャネルアクセストークン」は、上記の設定項目で確認した文字列をコピー&ペーストしてください。
<?php
require_once __DIR__ . '/vendor/autoload.php';
define('SECRET', 'チャネルシークレット');
define('ACCESSTOKEN', 'チャネルアクセストークン');
$json_string = file_get_contents('php://input');
$json_object = json_decode($json_string);
$replyToken = $json_object->{"events"}[0]->{"replyToken"};
$message_text = $json_object->{"events"}[0]->{"message"}->{"text"};
$user_id = $json_object->{"events"}[0]->{"source"}->{"userId"};
$return_message = "こんにちは。\n\n「{$message_text}」に対して応答しました。";
$response_format_text = array( "type" => 'text', "text" => $return_message );
$post_data = array( "replyToken" => $replyToken, "messages" => [$response_format_text] );
$ch = curl_init("https://api.line.me/v2/bot/message/reply");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode( $post_data, JSON_UNESCAPED_UNICODE ));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charser=UTF-8',
'Authorization: Bearer ' . ACCESSTOKEN
));
curl_exec($ch);
curl_close($ch);
LINE Botを友達追加しメッセージを送ると、次のように応答するはずです。

プログラムと見比べると、11行目の変数$message_textに送信メッセージ(入力メッセージ)が入り、14行目の変数$return_messageで返信メッセージ(出力メッセージ)をセットしていることが分かると思います。
あとは、入力されたメッセージをプログラムで処理して、処理結果を$return_messageに入れてあげるだけで、応用できます。
今回はLINE Botの作り方を、1から順を追って説明しましたが、完成したLINE Botは、おうむ返しをするシンプルなものです。
次回、応用というほどではありませんが、LINE Botに処理を与えるプログラムを作ってみたいと思います。