QA@IT

facebookページランキングの取得方法は何ですか?

2516 PV

このような結果:
http://fbrank.main.jp/

APIで取得する方法は何ですか?
開発者ドキュメントを見て、やり方を見つかりません。

関連URL:

http://developers.facebook.com/docs/reference/fql/page/
http://developers.facebook.com/docs/reference/fql/insights/

回答

一発で「すべてのFacebookページを『いいね』の数の順に取得する」ということはできません。
FBrankの作者の方による解説記事があります。
http://fb.dev-plus.jp/column2/column2_9/

ユーザの「いいね」リスト (Graph APIのパスは /me/likes) を取得することによってページのリストを収集し、さらにGraph APIで各ページの詳細情報を取得しているようです。ただし、普通にやるとGraph APIを叩く回数が多くなってしまうので、バッチリクエスト
http://fb.dev-plus.jp/reference/coreconcepts/api/batch/
を利用しているようです。これを使うと、20回分のリクエストを一気に行うことができます。

「いいね」数だけをゴッソリ取得するなら、FQLを使うのも速いです。

(ユーザ自身の「いいね」しているページだけなら)
select page_id, name, fan_count from page where page_id in (select page_id from page_fan where uid=me())

(取得すべきページの一覧がわかっているなら、ID決め打ちでこんな具合に)
select page_id, name, fan_count from page where page_id in (ページAのID, ページBのID, ページCのID)

ただし、FQLだと、FBrankに表示されている「話題にしている人の数」が取れないようです。「話題にしている人の数」をとりたければ、どうしてもGraph APIでページ情報の "talking_about_count" の値を読むしかないと思います。その時にはリクエスト数の節約のためにバッチリクエストを使いつつ地道にhttps://graph.facebook.com/ページIDを叩いていくことになるでしょう。

編集 履歴 (0)
  • とても詳しい回答です。ありがとうございます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。