少し前ですが、LineからMessaging APIが登場しましたね!
これが登場して間もないころ、新しいもの好きの僕は早速使ってみることにしました^^
Lineから、APIのサンプルとなるコードが公開されていたため、
「あれ?これ簡単にできるんじゃね?」と舐めてましたが、
Slim Frameworkというものを使って開発していて、すりむふれーむわーくとはなんぞや?
とPHP初級者の僕は大きな壁にぶち当たってしまいました。
サンプルコード↓
https://github.com/line/line-bot-sdk-php/tree/master/examples/EchoBot
そんな人って多くないですかね?
ということで、今回LineBotの作り方を解説します。
Line Botの作成手順
手順は以下のとおりです。
今回はさくらレンタルサーバーの契約済みであることを前提とします。
1.Line Business Centerにて、APIを使用するための登録を行う
2.さくらレンタルサーバーにて、SSLの設定を行う
3.LINE BOTアプリケーションの作成を行う
4.LINE BOTを動かす
以上の4つの手順で完了します。
では、はりきっていきましょう!
Line Business Centerの登録
まず、以下のサイトを開きます。
https://business.line.me/ja/services/bot
上記の画面が開きます。
Messaging APIを始める をクリックして、APIの登録を進めてください。
※ここはそこまで迷うところでも無いとおもうので、端折ります。
ある程度進むとLine Developersのページに行き着くと思います。
こんな画面です。
ここでLINE BOTアプリケーションのURL設定を行います。
まだLINE BOTアプリケーションは作成していないため、次の手順へ移ります。
さくらレンタルサーバーでSSLの設定をする
さくらレンタルサーバーで共有SSLの設定を行います。
LINE BOTはSSL設定をしたURLでなければ許可が下りないため、設定しましょう!
まず、サーバコントロールパネルを開きます。
次に、左側にある「ドメイン設定」を開きます。
SSL設定をしたいドメインの「変更」ボタンをクリックします。
共有SSLを利用するを選択して
送信ボタンをクリックします。
これで、SSLの設定は完了しました。
試しに、設定したドメインをhttpsとして開いてみましょう!
https://〇〇.sakura.ne.jp
開くことが出来たら、設定は完了です!
LINE BOTアプリケーションの作成
いよいよ本題のアプリケーションの作成です!
「けっこう長いプログラムじゃないかな?」とあなたは思われるかもしれませんが、
実はそんなに長くなくてもLINE BOTは作れます!
サンプルプログラム↓
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 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<?php $accessToken = 'アクセストークン'; //ユーザーからのメッセージ取得 $json_string = file_get_contents('php://input'); $jsonObj = json_decode($json_string); $type = $jsonObj->{"events"}[0]->{"message"}->{"type"}; //メッセージ取得 $text = $jsonObj->{"events"}[0]->{"message"}->{"text"}; //ReplyToken取得 $replyToken = $jsonObj->{"events"}[0]->{"replyToken"}; //メッセージ以外のときは何も返さず終了 if($type != "text"){ exit; } //返信データ作成 $response_format_text2 = ""; $response_format_text3 = ""; if($text=="こんにちは"){ $response_format_text = [ "type" => "text", "text" => "こんにちは!" ]; }else{ exit; } $post_data = [ "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)); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charser=UTF-8', 'Authorization: Bearer ' . $accessToken )); $result = curl_exec($ch); curl_close($ch); |
50行も書かずに実装できてしまうんです!
LINEが用意したサンプルプログラムを見てから、こちらのプログラムに行き着いたときは
かなりびっくりしました。
ということで、上記のソースをphpとして保存してください^^
ちなみに、3行目のアクセストークンには、LINE developerのChannel Access Tokenを入力してくださいね。
そのあと、プログラムをphpとして保存して、
さくらサーバーの指定場所へアップロードします。
パーミッションの設定を忘れないようにしてくださいね。
アップロードしたら、一度作成したPHPプログラムを開いてみてください。
真っ白だと思います。
このときにエラーが出ていたら何処か間違っているので直しましょう!
開いたURLをコピーして、先程開いたLINE developersを開いてください。
Webhook URLにコピーしたURLを貼り付けてVERIFYボタンをクリックしてください。
Successが表示されたらOKです!
LINE BOTを動かす
最後の手順となりました。
LINE BOTを実際に動かしてみましょう!
LINE developersに乗っているQRコードから、作成したBOTを友達登録して
メッセージを投げてみてください!
こんかいのサンプルプログラムでは、
「こんにちは」という文字に反応するので、「こんにちは」と投げてみましょう!
帰ってきたら成功です!
あとは、PHPプログラムをアレンジするなりしてLINE BOT開発を楽しみましょう!
以上でLINE BOTの作成方法の解説を終わります^^
ありがとうございました(^o^)
質問などあればお気軽にどうぞ!
はじめまして!
さくらインターネットのスタンダードで動かしているのですが
ここのサンプルでのみ、動作ができました!
ありがとうございます!
ただ、日本語を喋れなくて
$response_format_text = [
“type” => “text”,
“text” => “Hello”
このtextを日本語にするとエラーが出ます
なにか解決方法はありませんか?
はじめまして!
どんなエラーでしょうか?
日本語にすると出るエラーとなると、サンプルを保存したときの文字コードによるエラーではないかと考えます
コード(テキスト)を保存する際に文字コードを変えてみたら上手く行きませんか?
ご返信ありがとうございます!
メモ帳からUTF-8に保存したら、うまくいきました!
返事が来るのが嬉しいです
ありがとうございます♪
今回、合計金額の手違いがありましたが、丁寧で迅速なメールを下さり
とても対応が、良かったです。
気持ちのこもった、直筆の手紙もとても嬉しいです。
大好きです。
ブランドスーパーコピーN級品 https://www.tentenok.com/products-small-l-12.html