1

我無法想象一種方式只與配置文件照片的朋友。我可以使用多重查詢來檢查每個朋友是否有照片,但這會導致交通繁忙。如何僅上傳帶有個人資料照片的朋友,並忽略具有默認側影的那些用戶?

有沒有其他的選擇?

+0

你能定義什麼是朋友沒有照片?你的意思是測試用戶的照片顯示? – phwd

+0

這是沒有照片的朋友https://graph.facebook.com/37005951/picture?type=large – Gajus

+0

可能是所有非照片都只有這張圖片https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v2/yL/r/HsTZSDw4avx.gif'。你可以檢查圖片的url是否是這個。 – Jashwant

回答

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 
) 

- >Try this query in the Graph API Explorer.

+0

絕對更可靠。 – Gajus

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將得到你所有的朋友uids。如果pic_small指的是Facebook使用的placeholder,則其他查詢將與配置文件數據檢查相匹配。您可以快速測試here

相關問題