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