こんにちは、河野です。
Twitterのフォロワー数とFacebookページのいいね数を取得したくてAPIについて調べてみたのですが、情報を取得するAPIはどちらも認証が不要なので、ワンライナーを書いてみました。
Twitterのフォロワー数を取得する
1 2 |
curl -s "http://api.twitter.com/1/users/show.json?screen_name=techscore_synm" | \ grep -oE '"followers_count":[0-9]+' |
(横長なので改行してます)
TwitterのAPIに取得したいスクリーンネームを渡してアクセスすると、JSONのデータが返ってきますので、それをgrepで抽出してます。grep は -o オプションで該当箇所のみ取得できます。
実際にやってみると、こんな感じです。ちゃんと取得できてますね。
1 2 |
$ curl -s "http://api.twitter.com/1/users/show.json?screen_name=techscore_synm" | grep -oE '"followers_count":[0-9]+' "followers_count":266 |
Facebookのいいね数を取得する
1 2 |
curl -s "https://graph.facebook.com/techscore" | \ grep -oE '"likes":[0-9]+' |
(横長なので改行してます)
Facebookページの情報が取得できるページにアクセスし、結果をgrepで抽出しています。
実際にやってみると、こんな感じです。
1 2 |
$ curl -s "https://graph.facebook.com/techscore" | grep -oE '"likes":[0-9]+' "likes":326 |
数字だけ取得したい
やり方は色々とあると思うんですが、cutを使ってみます。
1 2 3 4 5 |
curl -s "http://api.twitter.com/1/users/show.json?screen_name=techscore_synm" | \ grep -oE '"followers_count":[0-9]+' | cut -d: -f2 curl -s "https://graph.facebook.com/techscore" | \ grep -oE '"likes":[0-9]+' | cut -d: -f2 |
どちらもJSONで受け取ったデータの一部を取り出しているので、コロンで分割して2つめを取得したら良いですね。