少し手が空いたので、以前より要望のあった Tuitter/TuiBotter の OAuth 対応をやってみました。
TuitterをOAuthで使う
TuiBotter環境設定
あまり難しく考えないで、サクッと。おかげで外部ライブラリが結構な環境依存になってしまいましたが。
まずOAuthクライアントですが、自作するのも手間だったのでPECLのOAuthを使うようにしています。
最初はtwitteroauthなど配置するだけのライブラリを使おうかとも思ったのですが、いずれにしろ libcurl が必要ですし、ライブラリの場所を指定する手間も発生します。おまけに PECL/oauth を入れると OAuthException の定義が干渉しあって twitteroauth は動かなくなってしまうことが判明したので、思い切ってPECLのみの対応で割り切りました。
実装は単純で、従来の Tuitter クラスを継承して、新たに TuitterOAuth というクラスを作ります。コンストラクタの引数だけが異なりますが、インスタンス化してしまえば以前と全く同様に使えるという寸法です。
つまり、以下のようなコードがあったとすると
$tuitter = new Tuitter($user, $pass); $tuitter->sendMessage("Hellow"); $user = $tuitter->getUser('nao58'); :
最初のインスタンス作成部分を修正するだけでOAuth対応になります。
$tuitter = new TuitterOAuth( $consKey, $consSec, $acKey, $acSec); $tuitter->sendMessage("Hellow"); $user = $tuitter->getUser('nao58'); :
TuiBotter側に至っては、INIファイルの記述を書き換えるだけで対応完了です。
ただ、ベーシック認証に比べると複雑なことをやっているため、動作がちょっと重くなったような…ま、ここはトレードオフとしてください。
Related posts:
- [Tuitter] Twitterのプロフィール設定変更機能を追加
- [TuiBotter] Twitterボット専用PHPフレームワーク
- [Tuitter] オブジェクト指向型Twitterクライアント