FacebookのFQLを使用してLike数やShare数を取得する

簡単にサイトのLike数を取得する方法

下記URLにアクセスしてみましょう。

https://graph.facebook.com/http://oh240.github.io

アクセスすると下記の結果が返ってくるかと思います。

return.json
1
2
3
4
{
  "id": "http://oh240.github.io",
  "shares": "11"
}

実はこれ、結果がLike数とshareの数が加算されたものなので、 個別にLike数とShare数を取得したいときに不便です。

FQLであれば 個別のLike数とShare数を取得できる

facebookのFQLというものを使用すれば、各データをSQLの文法っぽく取得できるので、 便利らしいです。 とにかく試してみましょう。

https://api.facebook.com/method/fql.query?query=select%20url%2c%20normalized_url%2c%20share_count%2c%20like..

return_fql.json
1
2
3
4
5
6
7
8
9
10
11
12
13
[
  {
      url: "%http://oh240.github.io",
      normalized_url: "http://oh240.github.io/",
      share_count: 0,
      like_count: 0,
      comment_count: 0,
      total_count: 0,
      commentsbox_count: 0,
      comments_fbid: null,
      click_count: 0
  }
]

あとはこのように結果がJsonで返ってくるので、 phpやJavascriptでさくっと調理してあげましょう。

今回はフォーマットにjsonを指定しましたが、 xmlで返したいときは末尾の&format=jsonを消してください。

https://api.facebook.com/method/fql.query?query=select%20url%2c%20normalized_url%2c%20share_count%2c%20like..

return_fql.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
  <script/>
  <link_stat>
      <url>%http://oh240.github.io</url>
      <normalized_url>http://oh240.github.io/</normalized_url>
      <share_count>0</share_count>
      <like_count>0</like_count>
      <comment_count>0</comment_count>
      <total_count>0</total_count>
      <commentsbox_count>0</commentsbox_count>
      <comments_fbid xsi:nil="true"/>
      <click_count>0</click_count>
  </link_stat>
</fql_query_response>

注意点は調べたいURLをエンコードすること

これやんないとうまくAPIが機能せずに動かないです。 以下の参考サイトでエンコードを行ってください。

URLエンコードツール

FQLを使って他にも必要なFacebookに関連するデータを出来るので、 こちらで色々テストを行ってみるのもいいかもしれません。 下記リンクから「FQL Query」を選択してください。

Graph API Explorer