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

ほげほげ(仮)

仮死状態

Facebook Query Language (FQL)を使ってみる

Facebook


最近はTwitterよりFacebookに書きこむことのほうが増えてます。


ちょっとFacebookAPIを調べてみたら、簡単に使えそうなのがあったので紹介したいと思います。

FQL

FacebookにはSQLに似たFQLというものがあります。
これを使ってみたいと思います。


例でURLからシェア・いいね!の件数を取得したいと思います。

やってみる

次のURLをブラウザで確認してみてください。

https://api.facebook.com/method/fql.query?query=select%20%20like_count,%20share_count,%20comment_count,%20total_count%20from%20link_stat%20where%20url=%22http://www.hatena.ne.jp/%22

結果としてXMLが返ってくると思います。

<?xml version="1.0" encoding="UTF-8"?> 
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true"> 
  <link_stat> 
    <like_count>3</like_count> 
    <share_count>21</share_count> 
    <comment_count>2</comment_count> 
    <total_count>26</total_count> 
  </link_stat> 
</fql_query_response> 


これだけでだいたい分かると思いますが、シェア・いいね!の件数を取得しています。

使い方

使い方はとても簡単です。

https://api.facebook.com/method/fql.query?query=FQL

上記のFQLの箇所にURLエンコードしたFQLを書けばいいだけです。


FQL自体はほぼSQLと同じようですが、結合とかが出来ないっぽいです。
他にも制限等がありそうですが、そこまで詳しく調べてないので・・・


また、パラメーターに「format=json」を追加すれば、json形式で結果を返してくれます。

参考にしたやつ

Facebook Query Language (FQL) - Facebook開発者
FQLの使い方が載ってます。
今回はlink_statというテーブルを使いましたが、他にも色々あります。

イマイチ分からないこと

Like Button - Facebook開発者でいいね!ボタンを設置できますが、
ここに表示される件数とFQLで取得した件数が違うことが多いです。
試行錯誤したのですが・・・結局よく分からなかったです。
誰か分かる人がいたら教えてください><
追記1に解決策を書きました。

そんな感じで

FacebookはPHP、JavaScript、PythonとかのSDKも準備されてます。
色々と面白そうなことができそうな気がします。
英語なのがオレにとって最大の難点ですが・・・

ちなみに

いいね!ボタンが設置されてないのはめんどくさいだけなので・・・
そのうち設置する予定です。あくまで予定です。

追記1

上記で件数が違うことがあると書きましたが、解決策が分かりましたので書いておきます。
(実は結構前から判明してたのですが、めんどくさくて書いてませんでした。)
FQLの件数といいね!ボタンの件数が違う場合は、Facebook URL リンターで対象のURLを入力して実行すると件数が合うようになるみたいです。
URL リンターはOGPとかのチェックにも使えるので結構便利です。

※OGPについては↓を見てください。
フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か

追記2

はてなダイアリーがいいね!ボタンに対応したので簡単に設置できました(∩´∀`)∩