Hatena::ブログ(Diary)

Dlog 隔離館 このページをアンテナに追加 RSSフィード

2010-11-09

自作のTwitter用BOTが大暴走してた。その原因と対処法

自作のPHPで作った、TwitterのとあるBOTが大暴走していました。

その内容と原因、対処について書きたいと思います。もう、涙目。


暴走の内容

  • リプライを飛ばしまくる
  • リプライを飛ばしまくる
  • リプライを飛ばしまくる
  • リプライを飛ばしまくる
  • リプライを飛ばしまくる

暴走の原因

in_reply_to_status_id を保持しておき、MentionsやTLを取得する際には

この値を使っていましたが、それがとんでもない値になってました。

不可思議に思って調べてみると、ここ1日〜2日前に、Twitter側が仕様変更したようです。

次のような感じで、in_reply_to_status_idの値が激変してました。

上に行くほど新しいです。

"in_reply_to_status_id":184785**********
"in_reply_to_status_id":184887**********
"in_reply_to_status_id":154057**********
"in_reply_to_status_id":146485**********
"in_reply_to_status_id":2921*******

この桁数の増え方は何・・・!何のいじめ!?

なので、今まで単純にこの値をとっていると、オーバーフローしてしまいます。


解決方法

変わりに、in_reply_to_status_id_str というものが親切にも用意されているので、

これに書き換えるだけで解決。


後記

大量のリプライツイートを削除するのがとても大変でした・・・。

気付くのがあと1日でも遅れていたら、労力2倍といったところでした。怖い怖い。