携帯電話のTL取得制限にさようなら!twitterをスクレイピングして携帯用HTMLに変換するサイト作った

最近twitterAPIのPOSTメソッド裏技が通用しなくなって、タイムラインをAPIで持ってくるのにも制限がかかるようになりました。
ここで困ったのが、今まで使っていたmovatwitterがAPIを利用しているために制限にひっかかるようになってしまったこと。
携帯でも容赦なく更新しまくる自分にとってはこれは痛い。
そこで「自分でスクレイピングして変換すればいいんじゃね?」と思い立ち、実装してみました。

ログインからTL取得まで

Twitterのログインは普通にPOSTメソッドで投げるわけですが、その際にauthenticity_tokenなるランダム文字列を一緒に渡す必要があります。
そのためスクレイピングでその値とそこで渡されるクッキーを取得し、ID、パス他もろもろと一緒に/sessionsに投げます。
以降はクッキーをやりとりすることでセッションを維持しつつ自分のTLを持って来れます。*1

post

postはログイン時同様にtokenが必要となるので持ってきてPostメソッドで/status/updateに投げればOK

replyの取得

replyは普通に/repliesか/#repliesで取ってこれるのかと思ったらこれがうまくいかなくて、いろいろ試したところ/→/replies→/#repliesで取得できました。

セキュリティ

前述のように一旦ログインするとクッキーのやりとりでいろいろやるのでパスワードそのものの送信はログイン時の1回だけでWebからログインするときはSSL通信もしてるっぽい。でもそれ以降は普通に流してるので通信傍受されてたらセッションハイジャックされるかも?自分が作ったサービスもPHPでセッション管理してるので同様の危険性はあるけど、一応それ+αで細工してます。まぁえろい人に本気出されるとあんまりあてにはならないけど気休め程度にはなるかと思って。
ちなみにIDやらパスはサーバに保存してません。



んでできたサイトがこちら 公開中止

注意事項

  • このWebサービスを使ったことによって生じたいかなる損害に対しても責任を負いません。
  • 基本的に「自分が使う」という目的で作っているので自分が持ってるau以外の動作保障はしません。というかできません。
  • 個人サーバを使ったサイトですのでメンテナンス等で不定期に利用できなくなることがあります。
  • バグいっぱいあると思いますorz

TODO

@とかfavとかReTweetとか



言い訳みたいになってしまいますがまともに開発したことがないので例外処理とかは鋭意勉強中です…
個人的には普段movatwitter使ってもばつい重かったり制限食らったらこっち使うみたいなことしてます。
あ、あとサービス名募集w

*1:セッション管理がクッキーだけって…