Facebookのイイネ数を取得する
APIはふたつあるみたい。
その1
リクエスト
https://api.facebook.com/method/fql.query?query=SELECT total_count FROM link_stat WHERE url="http://google.com"
レスポンス
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true"> <link_stat> <total_count>7158803</total_count> </link_stat> </fql_query_response>
XML。
FQLというフェースブック専用の問い合わせ言語とのこと。
http://codaholic.org/?p=911
https://developers.facebook.com/docs/reference/fql/link_stat/
その2
リクエスト
http://graph.facebook.com/?id=http://google.com
レスポンス
{ "id": "http://google.com", "shares": 7158803, "comments": 133183 }
JSON。
jsだとこんな感じで目的のイイネ数をとれる。
$.ajax({ type: 'GET', url: 'http://graph.facebook.com/?id=' + 'http://google.com, dataType: 'jsonp', success: function(data) { var count = (data.shares)? data.shares : 0; alert(data.count); },error : function(){} });
2つめの方は、リクエストに上限があるのを確認した。
上限に達するとレスポンスが以下のようになる。
{ "error": { "message": "(#4) Application request limit reached", "type": "OAuthException", "code": 4 } }
調べると次のようなルールがあるとのこと。
> 1つのアクセストークン毎に600秒間で600コール出来る。
http://tagamidaiki.com/facebook-graph-api-call-limit/
アクセストークンを使わないと上限下がるのかも。