LoginSignup
22
30

More than 3 years have passed since last update.

LINEBOTSDK-PHPを使ってLINEBOTを作成する。

Last updated at Posted at 2016-11-22

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
スクリーンショット 2016-11-22 10.36.08.png

返信用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
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);
  }
}
これでHelloworldが完成しました!

このlinebotフォルダを、サーバーにアップロードしましょう。

LINE側の設定

https://admin-official.line.me/
ここのアカウントを選択して、「アカウント設定」=>「BOT設定」まで行ってサーバからファイルを実行させるように設定します。
スクリーンショット 2016-11-22 9.59.32.png

LINE Developersページへ移動

LINE Developersで設定するを押してください。
スクリーンショット 2016-11-22 16.09.38.png

シークレットトークンの場所

channnel secret をSHOWボタンを押して取得しましょう。
発見したらindex.phpのファイルに記入しましょう。

<?php
DEFINE("SECRET_TOKEN","ここにシークレットトークン");

アクセストークンの場所

channnel access tokenの欄に書いてあります。(自分のが写ってしまってるので左の欄だけの画像)
発見したらindex.phpのファイルに記入しましょう。

<?php
DEFINE("ACCESS_TOKEN","ここにアクセストークン");
スクリーンショット 2016-11-22 10.24.31.png

返信用サーバーURLの設定

ここに先ほどのindex.phpをアップロードしたサーバを指定しましょう。(https://domain.com/index.phpなど)
スクリーンショット 2016-11-22 10.09.21.png
これで完了です!

LINEBOTを登録してメッセージを送信してみてください。

参考URL

「オートロードと名前空間について」SDKを読み解くのに必要です。
http://qiita.com/atwata/items/5ba72d3d881a81227c2a
基本的にほとんどのURLはHTTPS通信で扱う仕様になっています。

22
30
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
30