読者です 読者をやめる 読者になる 読者になる

Facebookのイイねされた数をURLを指定して取得する

Facebook

何か作るのは面倒くさいので、手元の環境で適当に取得できるようにしてみる。
Facebookのことなので、これがいつまで使えるかは謎

FacebookのGraph APIを使ってイイね数を取得する

どうやら、idにURLを指定してやればイイねに関する情報がJSON取得できる様子。かんたん

$ curl -s "http://graph.facebook.com/?id=http://www.atyks.org/"

{  
  "og_object": {  
    "id": "10150302610415731",  
    "description": "ChangeLogに書き留めた覚書など",  
    "title": "そうだ車輪と名づけよう 5th",  
    "type": "article",  
    "updated_time": "2016-01-18T07:42:05+0000"  
  },  
  "share": {  
    "comment_count": 0,  
    "share_count": 1  
  },  
  "id": "http://www.atyks.org/"  
}

この内、share_countがイイね数らしい。ので、この時点で目標は達成。後は必要なだけリクエストすればOK

jqを使って変換する

上では結果のJSONを見るのにjq コマンドを使って整形している。

実際に叩いたURLは以下
$ curl -s "http://graph.facebook.com/?id=http://www.atyks.org/" | jq

これだと不要な情報も取得できてしまうので、必要最低限のみを切り出してみる

$ curl -s "http://graph.facebook.com/?id=http://www.atyks.org/" | jq '{"id": .id, "count": .share.share_count}'

{  
  "id": "http://www.atyks.org/",  
  "count": 1  
}

数字だけ欲しいならこんな感じ
$ curl -s "http://graph.facebook.com/?id=http://www.atyks.org/" | jq '.share.share_count'

1