LINEBOTをPHPで作成しましょう。
現在、LINEBOTのリファレンスは少し難しく書いてあります。
特にLINEBOTSDKは英語で書いてありますし、オブジェクト指向とcomposerの知識が必要です。
そのためLINEBOTSDKを使って、メッセージの返信するまでを記事にしました。
公式リファレンス
LINEBOT公式リファレンス
https://devdocs.line.me/ja/
LINEBOTSDK(PHPバージョン)
https://github.com/line/line-bot-sdk-php
必要なもの
・サーバー
・ドメイン
・LINEBOTアカウント
BOTを登録する
https://business.line.me/ja/services/bot
返信用PHPを作成する
まずは、LINEBOTに送られたメッセージに返信するPHPを作りましょう。
最初にディレクトリを作成してください。
今回は、linebotというディレクトリにしました。
mkdir linebot
ターミナルでlinebotフォルダの中に移動
cd linebot
下のコマンドを実行する。
composer require linecorp/line-bot-sdk
実行するとvendorフォルダが作成される。
vendorの中にautoload.phpがあるので、LINEBOTSDKを使うにはこれを読み込む。
index.phpファイルを作成する。
vim index.php
<?php
DEFINE("ACCESS_TOKEN","ここにアクセストークン");
DEFINE("SECRET_TOKEN","ここにシークレットトークン");
use \LINE\LINEBot\HTTPClient\CurlHTTPClient;
use \LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\TextMessageBuilder;
use LINE\LINEBot\MessageBuilder\MultiMessageBuilder;
use \LINE\LINEBot\Constant\HTTPHeader;
//LINESDKの読み込み
require_once(__DIR__."/vendor/autoload.php");
//LINEから送られてきたらtrueになる
if(isset($_SERVER["HTTP_".HTTPHeader::LINE_SIGNATURE])){
//LINEBOTにPOSTで送られてきた生データの取得
$inputData = file_get_contents("php://input");
//LINEBOTSDKの設定
$httpClient = new CurlHTTPClient(ACCESS_TOKEN);
$Bot = new LINEBot($HttpClient, ['channelSecret' => SECRET_TOKEN]);
$signature = $_SERVER["HTTP_".HTTPHeader::LINE_SIGNATURE];
$Events = $Bot->parseEventRequest($InputData, $Signature);
//大量にメッセージが送られると複数分のデータが同時に送られてくるため、foreachをしている。
foreach($Events as $event){
$SendMessage = new MultiMessageBuilder();
$TextMessageBuilder = new TextMessageBuilder("よろぽん!");
$SendMessage->add($TextMessageBuilder);
$Bot->replyMessage($event->getReplyToken(), $SendMessage);
}
}
このlinebotフォルダを、サーバーにアップロードしましょう。
LINE側の設定
https://admin-official.line.me/
ここのアカウントを選択して、「アカウント設定」=>「BOT設定」まで行ってサーバからファイルを実行させるように設定します。
LINE Developersページへ移動
シークレットトークンの場所
channnel secret をSHOWボタンを押して取得しましょう。
発見したらindex.phpのファイルに記入しましょう。
アクセストークンの場所
channnel access tokenの欄に書いてあります。(自分のが写ってしまってるので左の欄だけの画像)
発見したらindex.phpのファイルに記入しましょう。
返信用サーバーURLの設定
ここに先ほどのindex.phpをアップロードしたサーバを指定しましょう。(https://domain.com/index.phpなど)
これで完了です!
LINEBOTを登録してメッセージを送信してみてください。
参考URL
「オートロードと名前空間について」SDKを読み解くのに必要です。
http://qiita.com/atwata/items/5ba72d3d881a81227c2a
基本的にほとんどのURLはHTTPS通信で扱う仕様になっています。