twitter でfollowing を全員unfollow するブックマークレットをつくりました

はじめに

twitter でfollowing を全員unfollow したいというものの、
今までのウェブサービスなどではなかなかこの手の負荷の高そうな処理を安定してやってくれるところはありませんでした。
また、よくあるのはアンフォローではなく”一括フォロー”するスパム業者御用達系のソフトや、自分をリフォローしないひとをアンフォローするよくわからないツールばかりです*1
なのでtwitterREST API を使用せずに自分のブラウザからunfollow するようブックマークレットにて作成しました

Twitter Unfollow Bookmarklet - Hatena::Let
http://let.hatelabo.jp/laiso/let/gYC-yOm0i6i-Qg

使いかた

アドレスバーはりつけだとこれです。

javascript:"http%3A%2F%2Flet.st-hatelabo.com%2Flaiso%2Flet%2FgYC-yOm0i6i-Qg.bookmarklet.js%20%28arg%29".replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28"script"%29%3Bs.charset%3D"utf-8"%3Bs.src%3Durl%2B"%3Fs%3D"%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B

以下のようなひとの御眼鏡に適うはずです。

そう。
ひとつ、このブックマークレットを実行するうえで注意点があります。
まず、Google Chrome でしか動作確認をしていません。
あとは何百、何千のユーザーを大量にフォローしている人の環境でどのような結果を招くか僕にはわかりません。
IPあたりのアクセス回数制限にひっかかるかもしれませんし、ブラウザが落ちてしまうかもしれません。
と言ってもこのブックマークレットを実行するような退廃的な人がそのあたりを気にするかどうかはわかりませんが……


念の為、ブックマークレットに LIMIT という変数をつくってありますので、フォークできる人は調整してみてください(初期値は10億ユーザーです)

しくみ

上記のブックマークレットを読めるひとはいいとして以下のようなことをやっています

  • アンフォローの実行にスマートフォンタブレット向けtwitter web UI の Undocumented なAPI を利用しています
  • フォロワーのid一覧取得にtwitter REST API の Friends API を利用しています。認証の処理はしていないので非公開ユーザーの情報は取得できません
  • 初版ではフォロワー数のぶんだけのリクエストを同時に発行してDoS攻撃みたいな動作が可能でしたが、更新して順次リクエスするようにしました。なので時間がかかります
  • Developper Tool にログを出力しているのでみてみるといいかも

尚、このスクリプトをテストしている過程で @laiso のfollowing も1400 -> 0 になってしまいました。

*1:例えば、ついっぷるフレンズなどに 一括アンフォロー機能 があります