1

プロフィール写真だけで友達を作る方法が思いつきません。マルチクエリを使用して、すべての友人が写真を持っているかどうかを確認できますが、それでは大量のトラフィックが発生します。

代替手段はありますか?

4

2 に答える 2

1

これは、単純なFQLで実現できます。

SELECT uid, name, pic_small FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND pic_small != 'https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/yP/r/FdhqUFlRalU.jpg'

seb-queryは、すべての友達を取得しますuidspic_small他のクエリは、Facebookがプレースホルダーとして使用するものを参照しているかどうかを確認するプロファイルデータチェックとuidsを照合します。

ここですばやくテストできます。

于 2012-11-19T10:00:15.500 に答える
1

Gajus の提案したクエリは今でも機能する可能性がありますが、Facebook が CDN のデフォルトの画像の URL を変更すると機能しなくなります。(起こるかもしれないし、起こらないかもしれない。)

したがって、改善のためにこれをお勧めします:

profile_picテーブルには というフィールドがありis_silhouette、ユーザーが独自のプロフィール写真を設定しているかどうかを表すブール値です。

したがって、プロフィール写真が設定されている友達のみを取得するには、次を使用できます

SELECT uid, name FROM user WHERE uid IN
  (SELECT id FROM profile_pic WHERE
    id IN (SELECT uid1 FROM friend WHERE uid2 = me() )
    AND NOT is_silhouette
  )

–> Graph API Explorer でこのクエリを試してください。

于 2012-11-19T14:12:14.913 に答える