LINE Bot SDK PHPの新しいバージョンであるところの1.0.0が出ています.
Release 1.0.0 - Support new LINE Messaging API · line/line-bot-sdk-php · GitHub
今までのバージョンと何が違うかというと,今までのbot SDKはBOT API Trialと呼ばれるAPIをサポートするSDKだったんですが,今バージョンからはMessaging APIと呼ばれるAPIのサポートを行なうSDKとなりました.
まあそんな感じなんですが,このPHPのSDKについて色々と質問が散見されたので軽くお答えします.
なんでPHP5.6以降しか対応して無いの?
趣味……と言ってしまえばそこまでなんですが,主に以下の理由があります.
- PHP 5.5以前はoutdated (ref. PHP: Supported Versions)
- PHP 5.5以前にはhash_equals()が無い
1つめについてはまあハイ……という感じですが,調べたところ多くのレンサバではPHP 5.6以上が使えそうだったのでバージョンを新しくしてもレンサバ用途でも使えそうだ,ということでこのような選択をしています.サポートされている新しめの処理系を使っていくぞ! という気持ちです.
2つめについては,signature検証時のタイミング攻撃を防ぐために利用している hash_equals()
関数がPHP 5.6以降でサポートされているので5.5以前では使えないという問題があります.hash-compatなどのpolyfillも存在しているのでそれを使えば5.5より前のバージョンについても対応可能ですが,それをやるのもなんだかなあ……ということで今回は一丁5.6以降をサポートしたという次第です (なお後述の簡単なバージョンではpolyfillの対応が入っている).
どうやってHTTP Clientさしかえるの?
\LINE\LINEBot\HTTPClient
というinterfaceがあるのでそれを実装して差し替えて利用してください.
デフォルトではcURLを使った実装が提供されています.以前のSDKではGuzzleを利用していたのですが,GuzzleのバージョンとPHPのバージョンの関係等が色々と大変だったので今回は依存から外しました.
サンプルのアプリが動かないんだけど?
以下を確認してみてください.
つーか,なんか難しくない?
すみません……代わりと言ってはなんですが凄まじく簡単 (だけれど機能が少ない) なバージョンも提供し始めたので併せてご参照ください.
line-bot-sdk-php/line-bot-sdk-tiny at master · line/line-bot-sdk-php · GitHub
以上です.よろしくお願いします.