Sponsor

【phine】LINE公式Botを簡単に扱えるライブラリ作ってみた。

LINEBot PHP
Sponsor

はじめに

主に非公式LINEBotを作成していた筆者でしたが、最近は公式LINEBotの方に興味を持ち、作っています。

そして公式のSDKが使いにくい。。。。

なので、直感的に扱えるライブラリを作りました。


その名も「phine(ファイン)」

良い名前でしょう????

パッケージングしてあるので、composerを使用してインストールできます。

composer require nanato12/phine


コードはこちらにあります。

nanato12/phine
LINE Official Bot PHP Library. Contribute to nanato12/phine development by creating an account on GitHub.


使い方

使い方は簡単。

エコーボットのサンプル置いときます。

リポジトリには、FlexMessageのサンプルもあります。


index.php

<?php

// tracer->addEventで追加されるメソッド
// addEventで指定されたメソッドは引数、$botと$eventが渡される。
function receiveTextMessage($bot, $event)
{
    $text = $event->getText();
    $replyToken = $event->getReplyToken();

    $bot->replyTextMessage($replyToken, $text);
}

require_once(__DIR__.'/vendor/autoload.php');

use LINE\LINEBot\Constant\HTTPHeader;
use Phine\Client;
use Phine\Tracer;

// ユーザー固有の値
$channelSecret = 'XXXXXXXX';
$channelAccessToken = 'XXXXXXXXXXXX';

// Clientを作成し、Tracerに渡す。
$bot = new Client($channelSecret, $channelAccessToken);
$tracer = new Tracer($bot);

// ここで反応するイベントと呼び出されるメソッドの名前を入れる。
// この場合、TextMessageイベントの時、receiveTextMessageというメソッドを実行する。
$tracer->addEvent('TextMessage', 'receiveTextMessage');

// ここはお決まりの記述
if (isset($_SERVER['HTTP_'.HTTPHeader::LINE_SIGNATURE])){
    $data = file_get_contents('php://input');
    $signature = $_SERVER['HTTP_'.HTTPHeader::LINE_SIGNATURE];
    $tracer->trace($data, $signature);
}

?>


サンプルを見てもらうと分かりますが、phineを使うと、ユーザーが書く部分は

  • channelSecretとchannelAccessToken
  • addEventに反応したいイベント名とそのイベントに反応するメソッド
  • 反応するメソッドの処理

この3つだけです。

これでLINEBotが作れちゃう。素晴らしい。

Qiitaにも記事を書きました。

【PHP】初心者でもLINEBotをめちゃんこ簡単に作れるライブラリ作った。 - Qiita
公式LINEBotを作りたいと思い、公式のlinebot-php-sdkを見ていたが、そのままではちょっと扱いづらい。。。 だから自分で使いやすくするライブラリを作った。 その名も「Phine(ファイン)」 公式LINEBotのア...


さいごに

修正点や改善点がある場合は、気軽にissueやプルリク投げてください!!!


連絡先

何かあればコメントや下記の連絡先に連絡ください。

コメント

タイトルとURLをコピーしました