はい、今回も飽きもせずに 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 のプラグインとして既に存在していた。

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_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

HTTP_Request2

http://pear.php.net/package/HTTP_Request2