自作の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倍といったところでした。怖い怖い。