Facebookで自分と任意のユーザが「友達の友達」の関係にあるか知りたい

手元に友達の友達一覧を用意しておき、任意のユーザがそのリストに含まれていれば、友達の友達関係にあると見なせるだろう、というのがスタート。

SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND uid1 != me()

はじめは、上記のようにしたら簡単に取得できるだろうと考えました。ところが、以下のようなエラーが発生します。

Can't lookup all friends of {友達のID}. Can only lookup for the logged in user ({自分のID}), or friends of the logged in user with the appropriate permission

上記はアプリケーション経由で発行されたアクセストークンを使った場合に発生し、Graph APIのドキュメントのURLに埋め込まれているアクセストークンを使うと発生しません。そこで、パーミッション設定や他の手段の存在を疑って色々と試してみましたが、どうもうまくいかないようです。自分にはわかりませんでした。

結局、プライバシーの都合上、友達の友達の一覧は手に入らなそうなので、方針転換を試みました。自分の友達の中に任意のユーザと友達関係にある人がいれば、自分と任意のユーザは友達の友達関係にある、とい発想です。

SELECT uid1 FROM friend WHERE uid2 = {友達の友達かもしれないユーザのID} AND uid1 IN (SELECT uid2 FROM friend WHERE uid1 = me())

こんな感じでしょうか。疲れたので、ここまで。