MacBookAir Hack
photo-credit: IconAarchive
airgoogleplus
OS:Mavericks
Browser:Google Chrome
Shell:zsh
Terminal:iTerm2
前提として、自身がプロジェクトを作成する必要があります。また、環境によっては、情報を取得できない場合があります。
airgoogleplus
まず、OAuth認証します。
$ git clone https://github.com/syui/airgoogleplus $ cd !$:t $ ./!$ gplus-o
ちなみに、認証にはJSONファイルが必要になります。JSONファイルのダウンロード方法は、 airgoogleplus/pngにありますので、わからない人は、確認してみて下さい。
次に、フォローしてくれてない人を特定し、ブラウザで開きます。フォローしてくれていない人、またはフォローしてない人の数が多すぎると、ブラウザが重くなるので注意が必要です。
$ ./airgoogleplus gplus-f
仕組み
フォロー
仕組みは簡単です。APIからフォローしている人のIDを取得します。
$ curl -H "Authorization: Bearer $access_token" https://www.googleapis.com/plus/v1/people/me/people/visible | jq -r '.items[].id' > follow.txt $ cat follow.txt
ただし、フォロー数が100を超える場合は、ページトークンの処理が必要になってきます。
#!/bin/bash if [ -e $text/access.txt ]; then access=`cat $text/access.txt | jq -r .access_token` rurl="https://www.googleapis.com/plus/v1/people/me/people/visible" rm $text/follow_id.txt > /dev/null 2>&1 curl -H "Authorization: Bearer $access" $rurl | jq -r '.items[].id' > $text/follow_id.txt ptoken=`curl -H "Authorization: Bearer $access" $rurl | jq -r .nextPageToken` until [ "$ptoken" = "null" ] do rurl="https://www.googleapis.com/plus/v1/people/me/people/visible?pageToken=$ptoken" curl -H "Authorization: Bearer $access" $rurl | jq -r '.items[].id' >> $text/follow_id.txt ptoken=`curl -H "Authorization: Bearer $access" $rurl | jq -r .nextPageToken` done else echo "No Access Token !" fi exit
フォロワー
次に、自分をフォローしてくれている人のIDを取得します。
以下のページを haveyou.txt とでも名前をつけて保存します。
view-source:https://plus.google.com/people/haveyou
必要な情報であるIDをコマンドでも言語でもなんでもいいので、それを使って抜き出します。
$ cat haveyou.txt | grep -e "ppv.psn" | head -n 1 | cut -d '"' -f 6 >> follow.txt $ cat haveyou.txt | grep -e "ppv.psn" | sed '1d' | cut -d '"' -f 4 | grep -v -e "ppv.psn" >> follow.txt $ cat follow.txt
フォローしてくれていない人の特定
次に、フォローとフォロワーの情報のうち、差分を抜き出します。
$ sort follow.txt | uniq -u
これがフォローしているのに、フォローしてくれていない人、またはその逆になります。
アンフォローの実行
後はこの情報を元に、アンフォロー、またはフォローしやすいようなシェルスクリプトでも作ると良いです。
#!/bin/bash if [ -e ./follow.txt ]; then com="sort follow.txt | uniq -u" for (( i=`$com | wc -l | tr -d ' '` ; i > 0 ; i-- )) do url=`$com | awk "NR==$i"` url=https://plus.google.com/$url open -a Google\ Chrome $url done else echo no...follow.txt fi
ちなみに、アンフォロー、フォローの実行は、有料APIでないとできない感じですね。
したがって、上記では、ブラウザで開くようにしました。
フォローしてくれていない人、フォローしてない人の数が多すぎると、ブラウザが重くなるので注意が必要です。
Google+ APIの全機能を体験するツールを作った - Qiita