最近、メンテナンスで何か変わったのか、Twitterのスパムユーザーがやたらと勝手に登録してきませんか? うちは以前からfollower(フォローされている)の方にはちょこちょこ来ていたのですが、今週に入ってからfollowing(フォローしている)にやたらと紛れ込むようになりました。本来、ユーザー側でしか登録出来ない筈のものに潜り込んできてるんだから、かなり悪質です。
当初は手作業でブロックしていたのですが、どういう訳か同じユーザーが何度も登録してくる。Twitter側で対処してくれればそれもなくなるんでしょうけど、鬱陶しい事この上ないので何気なく
t0mori 誰か定期的にユーザー名でブロックするようなスクリプトでも書いてくれないものか(他力本願)。て言うか登録出来ちゃうTwitter側の穴の方が問題か。
とつぶやいたら
と神降臨w 早速、iChatに舞台を移し、リモコンして頂きつつ設定したのをφ(..)メモメモ。
[7月30日追記]どうもスパマーじゃなく、Twitter側のトラブルらしい説が有力。
[8月4日追記]ぼちぼち混乱も収まったようなので、下記設定はコメントアウトしました。
召喚魔法を唱えたつもりはなかったのですが(ホントです)、助かりました。
OKAMURAさんのアイディアは、curlコマンドでTwitterにユーザーブロックを送って、それをcronにて定期的に実行しようと言うもの。早速以下を設定した。
以下のコマンドラインを送ります。これをそのままTerminalから送って、目的のユーザーが消えていたら成功。(以下{}は入力不要)
curl -u {自分のTwitterアカウント}:{そのパスワード} --data 'id={ブロックしたいアカウント}' http://twitter.com/blocks/create/{ブロックしたいアカウント}.json
これがうまく行ったら、定期実行する為にcrontabに登録する手順へ。
cronを定期的に実行する為の設定ファイル、crontab。そのユーザー用ファイル、"/var/at/tabs/{ユーザー名}"(Mac OS X 10.5.7の場合。reference本によっては"/var/cron/tabs/{ユーザー名}")にコマンドラインを書き込む。Terminalから
$ crontab -e
で、viによる編集モードに入る。viに関しては割愛。以下、curlのコマンドライン。分 時 日 曜日 コマンドラインと言う形で記述。
1 * * * * curl --silent -u {自分のTwitterアカウント}:{そのパスワード} --data 'id={ブロックしたいアカウント}' http://twitter.com/blocks/create/{ブロックしたいアカウント}.json > /dev/null
ブロックしたいアカウントを増やす場合は、行頭の数字を'2 * * * *'などとして、実行時間をずらす。10分置きとかならこんな感じ。
*/10 * * * * curl --silent -u {自分のTwitterアカウント}:{そのパスワード} --data 'id={ブロックしたいアカウント}' http://twitter.com/blocks/create/{ブロックしたいアカウント}.json > /dev/null
また、'--silent'と'> /dev/null'はcurlからの、OS X内部でやりとりされる通知メール(mailコマンドで参照出来る)を抑制する為のもの。
まあ、ブロックしたいユーザーがいようがいまいが送ってしまうので、スマートではないかも知れないです。適当に見計らって、不用そうなやつは#して無効にするのが良いんでしょうね。
神様の教えの通りに戦ったt0moriは、平和なTLを築きましたとさ。めでたしめでたし。
当初はホームディレクトリに'.netrc'なるファイルを作り、そこに自分のTwitterアカウント、パスワードを書いてcurlから参照させる予定でしたが、どういう訳かうちの環境じゃうまく行かず、頓挫。いずれ使えるかも知れない時のためにそれもメモ。
まずは"~/.netrc"を作る。
touch ~/.netrc; chmod 0600 ~/.netrc
次に書き込む内容。(スペース区切り)
machine twitter.com login {自分のTwiterアカウント} {そのパスワード}
curlから参照させる場合のコマンドライン。
curl -n --data 'id={ブロックしたいアカウント}' http://twitter.com/blocks/create/{ブロックしたいアカウント}.jsonPosted by at 13:30
▼1年前はこんなこと書いてました...▼