0

FQL を使用しています。タグ付けされた友人の写真を取得したいと考えています。そして、私はこのクエリを使用しています。

SELECT pid,images FROM photo WHERE pid IN (
      SELECT pid FROM photo_tag WHERE pid IN (
         SELECT pid,images FROM photo WHERE aid IN (
            SELECT aid FROM album WHERE owner IN 
              SELECT uid,username,pic FROM user WHERE uid IN 
                SELECT uid2 FROM friend WHERE uid1 = me())
      ))))

しかし、それは私が予想したよりも少ないものを取得します。アルバムから写真を取り出すには限界があると思います。

より多くの写真を取得するにはどうすればよいですか?

4

2 に答える 2

0

まず最初に、クエリを単純化しますalbum。将来を保証するために、object_idが よりも好まれるpidので、それを使用します。

SELECT object_id, images FROM photo WHERE object_id IN (
  SELECT object_id FROM photo_tag WHERE subject IN (
      SELECT uid2 FROM friend WHERE uid1 = me()) OR subject = me()
)

これにより、376 枚の写真が返されます。

さらに必要な場合は、 と の両方のクエリに追加して、このクエリを複数回実行する必要がありLIMIT [offset] [results]ます。500 を使用する場合、このクエリをループするときに、値として 0、500、1000、1500... を使用します。空の配列が返されたら停止します。photophoto_tag[results][offset]

于 2012-07-29T15:02:27.907 に答える
0

以前、stackoverflow で同様の質問に回答しました。以下は同じリンクです。これで、ユーザーのタグ付き写真を取得していました。友達の写真も同じように変更できます。

人がタグ付けされているすべての Facebook の写真を取得する方法

ソリューションの要点は、クエリでは完全なデータを取得できないことです。アプリで同じことを試しました。たとえば、私がテストしたユーザーの場合、700 枚以上の写真がありました。しかし、あなたのようなクエリでは、300 枚以上の写真しか返されませんでした。

したがって、私の提案は、photo_tags から photoIDs、つまり object_id のリストを取得し、BATCH リクエストを使用してそれらをフェッチすることです。

お役に立てれば。

ありがとう

カウシク

于 2012-07-30T05:04:38.610 に答える