あるFacebookユーザがあるページのファンか調べたい場合
FQLを使えば、一度のHTTPリクエストで判断できる様子。
- http://developers.facebook.com/docs/reference/rest/fql.query
- http://developers.facebook.com/docs/reference/fql/page_fan/
SELECT uid FROM page_fan WHERE uid=me() AND page_id='172035836159664'; [ { "uid": "100001147796666" } ]
以下、Rubyのコード例。
(002): >> page_id = '172035836159664' => "172035836159664" (003): >> MiniFB.rest(token, 'fql.query', :params => { :query => "SELECT uid FROM page_fan WHERE uid=me() AND page_id='#{page_id}';" }) resp=[{"uid":"100001147796666"}] => [<#Hashie::Mash uid="100001147796666">]
一方、Graph APIの場合ですが、一度のHTTPリクエストで判断する方法がわかりませんでした。
/me/likesの結果からページのidがあるか判断する方法しか思いつかず、likeの数が多すぎる場合にページングされて複数回のリクエストが必要になるだろうと想像しています(limitを使わずにページングされる条件は知りません)。
始めてFQLを触りましたが、存外簡単でわかりやすいものでした。