読者です 読者をやめる 読者になる 読者になる

その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

LINE Bot SDK PHP 1.0.0について

php

LINE Bot SDK PHPの新しいバージョンであるところの1.0.0が出ています.

Release 1.0.0 - Support new LINE Messaging API · line/line-bot-sdk-php · GitHub

今までのバージョンと何が違うかというと,今までのbot SDKBOT API Trialと呼ばれるAPIをサポートするSDKだったんですが,今バージョンからはMessaging APIと呼ばれるAPIのサポートを行なうSDKとなりました.

まあそんな感じなんですが,このPHPSDKについて色々と質問が散見されたので軽くお答えします.

なんでPHP5.6以降しか対応して無いの?

趣味……と言ってしまえばそこまでなんですが,主に以下の理由があります.

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のバージョンの関係等が色々と大変だったので今回は依存から外しました.

サンプルのアプリが動かないんだけど?

以下を確認してみてください.

  • composer installしてるかどうか
  • channel token及びchannel secretをちゃんと指定しているかどうか
  • botの設定のcallback URLを正しく設定しているかどうか
  • ちゃんとPHPが起動しているかどうか (あるいはApache等のリバースプロキシの設定が正しいかどうか)

つーか,なんか難しくない?

すみません……代わりと言ってはなんですが凄まじく簡単 (だけれど機能が少ない) なバージョンも提供し始めたので併せてご参照ください.

line-bot-sdk-php/line-bot-sdk-tiny at master · line/line-bot-sdk-php · GitHub


以上です.よろしくお願いします.