Facebookクエリ言語(FQL)を使用して、アプリをインストールした友達のリストを取得しようとしています。アプリを認証してアプリアクセストークンを取得した後、次のクエリを実行しています(JavaとRestFBを使用して実行していることに注意してください)。
https://api-read.facebook.com/method/fql.query?query=SELECT+uid+FROM+user+WHERE+uid+IN+%28SELECT+uid2+FROM+friend+WHERE+uid1%3D<userId>%29+AND+is_app_user%3D1&access_token=<appAccessToken>&format=json
これはエラーを返します:
..."error_code":102,"error_msg":"Requires user session"
同様に、グラフAPIでFQLを使用しようとすると(以下のように)、同じエラーが発生します。
https://graph.facebook.com/fql?q=SELECT+uid+FROM+user+WHERE+uid+IN+%28SELECT+uid2+FROM+friend+WHERE+uid1%3D<userId>%29+AND+is_app_user%3D1&access_token=<appAccessToken>&format=json
そこで、ユーザーアクセストークンを期待どおりに使用してみました。私はかなりの部分を検索し、これに出くわしました: グラフAPIを使用したFacebookの「Friends.getAppUsers」
これにはいくつかの素晴らしいアドバイスがあり、次のクエリを試すようになりました。
https://graph.facebook.com/<userId>/friends?fields=installed&access_token=<appAccessToken>&format=json
そして、これはアプリアクセストークンを持つ友達のリストを返します。
それが私の質問につながります。FQLでアプリアクセストークンを使用して友達のリストを取得できないのに、Graph APIで友達を取得できるのはなぜですか?
前もって感謝します、
ベン