【PHP】LINE BOTの作り方
先日LINEでBOTが作れるとどこぞのサイトで見かけたので、遅ればせながらLINE BOTを作ってみました。
ここではその過程や作り方を画像付きで詳細に紹介しています。
追記
正式版として「Messaging API」がリリースされて「BOT API Trial Account」でのLINE BOTは廃止されたので、
新たに「Messaging API」を利用したLINE BOTの作り方を「【PHP】LINE BOTの作り方 on Messaging API」にて説明しています。
LINEでBOTが作れるの?
BOTといえばTwitterですが、私も知るまではまさかLINEでBOTが作れるとは思いませんでした。
しかし、「【LINE】メッセージングAPIのオープン化に先駆け、先着1万名限定でBOTアカウントを自由に開発できる「BOT API Trial Account」の無償提供を開始」にあるように、無料でトライアルとしてLINE BOTが作れます。
「ほー!面白そう!!」ということで、試しにこんなLINE BOTを作ってみました。
友達登録して試してみてください。
LINE BOTの作り方
1.「BOT API Trial Account」の作成
LINE BOTを作るためには、こちらからアカウントを作成しなければなりません。
まずは説明文を軽く読み流し、「利用開始」からアカウントを作ってください。
すると下のような画面がでてきますので、LINEを作成するときに登録したメールアドレスとパスワードを入力してログインしてください。
すると、次のような画面がでてきますので、「ビジネスアカウントを作成する」をクリックしてください。
いろいろと個人情報を記入するページが出てきますが、それを入力すると、下のような画面が出てきますので、「アカウント名」と「トップ画」を設定してください。
すると次のような画面が出てくるので、「BOT API Trial Account」の始めるボタンを押してください。
そして画面下の方にある「利用開始」をクリックします。
そしたら次のようになるので、「Create」をクリックしてください。
これでアカウントは作成完了です。
2.「Callback URL」を設定しよう!
作成したBOTのアカウント情報ページが表示されていると思いますが、ご覧のとおり「Callback URL」がありません(当たり前ですが)。
なので今から「Callback URL」を指定するので、「EDIT」を押してください。
「Callback URL」は「https」でなければならない
ここで私はつまづいたのですが、「Callback URL」に指定できるのは「https」のみでした(「https」から始まるURL)。
なので手っ取り早くLINE BOTを開発するために、私が使用しているサーバー(エックスサーバー)の共有SSLを利用することにしました。
エックスサーバーでは
https://○○○.ssl-xserver.jp/
のようなURLを得られるので、このドメイン直下に「linebot」というディレクトリを作成し、そこにLINE BOT用のPHPプログラムファイル(「callback.php」とした)を作成しました。
なので、「Callback URL」は次のようになります。
https://○○○.ssl-xserver.jp/linebot/callback.php
ポート番号の記述が必要だった!
上記URLで完璧だと思ったのですが、動かない・・・原因を調べたところ「Callback URL」にはポート番号が必要でした。
なので、次のように「:443」をシンプルに追記するだけです。
https://○○○.ssl-xserver.jp:443/linebot/callback.php
ということで、下の画像のように「Callback URL」を指定して、SAVEを押せば完了です。
3.「Server IP Whitelist」を指定しよう
「Callback URL」の設定が終わったら、LINE BOT用プログラムファイルを実行させたいサーバーのIPを次のように指定します。
まず、サイドバーにある「Server IP Whitelist」をクリックします。
すると、次のような画面が出てくるので、サーバーのIPアドレスを入力し「ADD」を押します。
なお、最後の項目は「24」にしておけば問題ないはずです。
4.LINE BOTのプログラムを作ろう!
認証情報の取得
LINE BOTのプログラムを作成するにあたってまずは
- Channel ID
- Channel Secret
- MID
の3つの認証情報が必要です。
この情報は、下の画像で示すアカウントメインページから入手可能です。
プログラムの作成
まずは勉強用として、ラインユーザーがLINE BOTに
ハゲ
というメッセージを送ってきた場合、そのユーザーに
「ハゲ」じゃねーよwww
とオウム返しするシンプルなLINE BOTを作成したいと思います。
そのプラグラムは以下です。
<?php //認証情報設定 $authentication_array["channel_id"] = "あなたのID"; $authentication_array["channel_secret"] = "あなたのSecret"; $authentication_array["mid"] = "あなたのMid"; //データ取得 $json_string = file_get_contents('php://input'); $json_object = json_decode($json_string); //取得データからの抽出 $message_from = $json_object->{"result"}[0]->{"content"}->{"from"}; //メッセージ送信者 $message_text = $json_object->{"result"}[0]->{"content"}->{"text"}; //送信されたメッセージ //返信メッセージ $return_message_text = "「" . $message_text . "」じゃねーよwww"; //返信メッセージの送信 sending_messages($authentication_array, $message_from, $return_message_text); ?> <?php //メッセージの送信 function sending_messages($authentication_array, $message_from, $return_message_text){ //API URL $url = "https://trialbot-api.line.me/v1/events"; //返信メッセージの設定 $message_format = ['contentType' => 1,"toType" => 1,"text" => $return_message_text]; //POSTデータ $post_data = [ "to" => [$message_from], "toChannel" => "1383378250", "eventType" => "138311608800106203", "content" => $message_format ]; //ヘッダー設定 $headers = array( "Content-Type: application/json", "X-Line-ChannelID: " . $authentication_array["channel_id"], "X-Line-ChannelSecret: " . $authentication_array["channel_secret"], "X-Line-Trusted-User-With-ACL: " . $authentication_array["mid"] ); //curl実行 $ch = curl_init($url); 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)); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charser=UTF-8', 'X-Line-ChannelID: ' . $authentication_array["channel_id"], 'X-Line-ChannelSecret: ' . $authentication_array["channel_secret"], 'X-Line-Trusted-User-With-ACL: ' . $authentication_array["mid"] )); $result = curl_exec($ch); curl_close($ch); } ?>
//認証情報設定
$authentication_array["channel_id"] = "あなたのID";
$authentication_array["channel_secret"] = "あなたのSecret";
$authentication_array["mid"] = "あなたのMid";
には、先ほど取得した認証情報を入力してください。
そして上記プログラムを「callback.php」という名前で保存し、「Callback URL」に指定したURLでアクセスした場合、そのファイルが実行されるサーバーの場所にアップロードしてください。
5.自分のラインに作成したLINE BOTを追加しよう!
作成したLINE BOTのアカウントメインページにいくと、次のようなQRコードがあると思います。
このQRコードの情報を自分のラインで読み取り、友達追加を行います。
そしてLINE BOTに何か呟いてみてください。
すると、
のように、オウム返ししながら地味に煽ってくれます。
あとは、「API reference for BOT API」などを見ながら、自分流にアレンジして、オリジナルなLINE BOTの作成にチャレンジしてみてください。
あわせて読んでほしい!
コメント
2:りせ:2017/02/24 17:26:13
保護BOTください
1:うえしま:2016/09/30 6:15:39
メッセージapiがでてきました