フォロワーの増減を確認する
いまさらながら、Twitterアプリを作るためにいくつかのAPIテストしている最中です。で、副産物としてリムーブ通知ができました。cronとかに設定してメール送信でもすれば、コマンドをたたく必要がないです。スクリプト自体は、idで識別しているので、誰なのかを確認するには、別途処理が必要です。
色々確認している最中だけど、この、followers/idsは、100件とかの制限はなさそうなので、こういった簡易的なリストを作るのには向いているかも。
#!/bin/sh uid=ykots ymd=`date '+%Y%m%d%H%M%S'` # TWITTER API TWITTER_FOLLOWERS_API="http://api.twitter.com/1/followers/ids/$uid.json" # フォローワー一覧リスト取得 status=`curl --silent --connect-timeout 10 -O $TWITTER_FOLLOWERS_API -w "%{http_code}"` rtn=$? if [ $rtn -ne 0 ]; then echo "curl error!!($rtn)" exit 1 fi #HTTPステータスコード if [ $status -ne 200 ]; then echo "twitter API error.($r)" cat $uid.json exit 1 fi # リスト作成 if [ -e new_$uid.list ] ;then rm new_$uid.list fi for id in `cat $uid.json |sed -e "s/\[//" | sed -e "s/\]//" | sed -e "s/,/ /g"`; do echo $id >> new_$uid.list done rm $uid.json # 過去比較 if [ -e $uid.list ]; then d=`diff new_$uid.list $uid.list | grep "^[<|>]" | sed -e "s/ /:/g"` if [ -z $d ]; then echo "変わってないよ" exit 2 fi for id in $d; do f=`echo $id | awk 'BEGIN {FS=":"}{print $1}'` if [ $f = "<" ]; then echo "あたらしくフォローされたみたい。 :D" else echo "ありゃ、リムーブされちゃった。 :(" fi echo $id | awk 'BEGIN {FS=":"}{print $2}' done fi # 移動およびバックアップ cp new_$uid.list $uid.list.$ymd mv new_$uid.list $uid.list
まあ、利用する人はいないかと思いますが、利用上の注意を書いておきます。比較のために、過去リストを保存しています。また、履歴も残していますので、適当なタイミングで消す必要があります。
追記
使う人いないと思っていたので、適当に書いていたんですが、星なんかを貰っちゃっていたので、もうすこし、注意点を。このシェルは、使ってみてもらうとわかりますが、ログインとか必要ないです。API的にOAuthとか必要ないんです。実際に使うときには、3行目のuidを変更することで自分用に変更できます。
uid=ykots <-ここを自分のidに変更する
で、ってことは、全然赤の他人のフォロワー履歴も採取することができます。さらにAPIを変更すれば、フォロー履歴も監視できてしまいます。他人を監視って、ちょっと気持ち悪い気もしますが。API的には問題ないのですが、そんな事やっていいのかわかりません。*1そのあたり、自己責任で使ってください。
*1:実際できるのだから、大丈夫だとは思いますけど...