PHP で twitter のアイコン変更ツールを作る
はい、今回も飽きもせずに twitter の小物を晒しますよ、っと。
今回のお題は「twitter のアイコン変更ツール」。普通に twitter のホームから「設定」>「アイコン」とたどって「これはいい画像ですね!」とほめてもらうのもいいが、複数の画像をさくさく切り替えたり、crontab などを使って時間で切り替えたり、なんてこともやってみたい。
そういう用途に適したツールを、「サクッと作る」ことを目標に PHP で実装してみた。web サーバに設置してブラウザから叩いてもいいし、crontab (…とwget) で API 的な使い方をしてもいい。
ソースコード
例によって github で公開している。ダウンロードして使うだけなら「download」ボタンを押すと zip か tar かを選んでダウンロードできるので、git 環境や github のアカウントは必要ない。
設置方法や使い方は README を参照いただきたい。
動的にアイコンを変更
crontab と wget を組み合わせて change.php を叩けば、一定時間ごとにアイコンを変更、なんてことができる。
coreserver で crontab を使うにはわりとコツがいるので、前回の記事を参照されたい。
※実はまだ crontab には乗せてないのでキッカースクリプトを書いていない。あとで書いて晒す予定。
コマンドとしては…
wget http://example.com/twicoro/change.php?image=1&key={SECRET}&mode=api
‘OK’ が戻ってくれば成功、’NG’ なら失敗。
なお、web mode / api mode とも config.php で [SECRET] が define されていなければチェックしない。こっちのチェックは使わずに Basic認証で、という運用も可能だろう。もちろん併用するのがいいと思うが。
その他
PEAR::HTTP_Requestについて
最近はレンタルサーバでも PEAR が動かせたり、好きなモジュールをインストールできるところも増えてきた。不幸にしてそうでない場合は、頑張って手動インストールする、という手もある。手順はこの辺にまとまっているので、HTTP_Request が使えない場合はチャレンジしてみる価値があるだろう。使いやすいライブラリだし。
しかし、今年の9月から up to date なのは「HTTP_Request2」になってしまった。まだアルファリリースだし、以前のものもメンテナンスは継続されるらしいが、新規に導入するならこちらも検討しよう。しかし「2」ってネーミングはどうかと思うよなぁ。
利用可能な画像
API ドキュメントを見ればわかるが、アップロードする画像には以下の制約がある。
- GIF / PNG / JPEG 画像
- 700KB 以下
- 500pixel 以下 (超えたらリサイズされる
名前の由来
TWitter ICOn ROtate で 「twicoro」。ちょっと一般ウケを考えてかわいいっぽい響きにしてみたが、「PHP」という要素が入ってないのは…まぁいいか。最初は「twicon」にしようしたのだが、ググってみたら WordPress のプラグインとして既に存在していた。
Links
project
●kwappa’s twicoro at master – GitHub
http://github.com/kwappa/twicoro
●ruby で twitter bot 「@rakuseika」を作る: Kwappa開発室
http://kwappa.txt-nifty.com/blog/2009/11/ruby-twitter-bo.html
twitter API
●Twitter API Wiki / Twitter REST API Method: account update_profile_image
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0update_profile_image
HTTP_Request
http://pear.php.net/package/HTTP_Request
●PHP5.0/6.PEARのインストール – Ground-SunLight
http://www.y2sunlight.com/ground/?PHP5.0%2F6.PEAR%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
●PEAR::HTTP_Requestを使う: Kwappa開発室
http://kwappa.txt-nifty.com/blog/2009/04/pearhttp_reques.html