2010-06-28 196 views
14

我想根據其電子郵件地址獲取用戶的Facebook個人資料圖片。實際上,我想爲我的用戶提供使用Gravatar進行圖片或Facebook使用的選項。然而,我所知道的唯一的方式來獲得用戶的Facebook圖片是通過:從電子郵件地址獲取facebook個人資料圖片

http://graph.facebook.com/[FBOOK USERNAME]/picture?type=large

由於用戶名可能Facebook和我的網站之間的變化,我想通過電子郵件地址而不是用戶名來做到這一點。如何通過電子郵件地址查詢某人的Facebook個人資料照片?

+0

你真的可以那樣做嗎?根據可能是私人用戶數據的電子郵件地址來檢索Facebook數據似乎有點安全問題。當然,Facebook對私人的定義可能比別人的定義寬鬆。 – 2010-06-28 03:35:54

+0

我在找同樣的東西。我想過在URL中使用user.name,但只有當用戶在www.facebook.com/username上設置了Facebook用戶名時纔有效。 – Jorre 2011-02-27 23:20:24

+0

似乎Sparrow(http://sparrowapp.com/)電子郵件客戶端正在這樣做,但它需要您對Facebook進行身份驗證。 – 2012-04-10 02:46:24

回答

-2

你要做的是Facebook連接存在的一部分。

利用他們不太巧妙地命名XFBML您可以要求直接圖像: <fb:profile-pic uid="1256100362" facebook-logo="true" size="thumb"> </fb:profile-pic>

但是你要實現與FB連接第一登錄...

+1

這仍然使用UID - 雖然你已經可以做到這一點沒有Facebook連接通過,在你提到的情況下,http://graph.facebook.com/1256100362/picture?type=large – Mala 2010-06-28 04:01:22

+3

是的,這是一個恥辱,我們可以這樣做與像一個md5(電子郵件)就像gravatar一樣 – Jorre 2011-02-27 23:21:34

4

似乎沒有給做一個正式的方式去做你正在問的東西。似乎Facebook已經有意封閉了這個網站,可能與隱私有關。它實際上很容易做到這一點,雖然一些屏幕抓取步驟:

1)訪問http://www.facebook.com/#!/search.php?q=# {USERS_EMAIL_ADDRESS} &類型=所有&的init = SRP

2)如果頁面返回「找到你的任何結果查詢「,然後他們沒有配置文件。

3)否則,該頁面將包含該電子郵件地址的用戶的縮略圖。 (類似於http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs227.ash2/48219_72120057_3223_q.jpg

如果有人願意,我可以在約5分鐘內編寫一個sinatra應用程序來完成此操作。

但我認爲gravatar和facebook應該只是朋友。

+1

我真的這樣做 - 我不會屏幕刮,但我絕對可以使用搜索結果自動獲取用戶的Facebook的ID,並使用該方法我的問題。但是,只有在您登錄時搜索才起作用,這使我以編程方式執行此操作。 – Mala 2010-12-02 06:02:06

20

我看到這個問題有幾年了,不過相同的搜索方法可以使用圖形API採取:

GET https://graph.facebook.com/search?q={EMAIL}&type=user

你可以試試這個在Graph API Explorer。您不直接獲取個人資料圖片,但您可以獲取用戶標識,您可以輕鬆使用該標識獲取公開個人資料圖片。

https://graph.facebook.com/{UID}/picture

+0

太棒了!這應該是公認的。 – 2012-12-17 14:48:03

+0

正確 - 非常好的答案。 :)很多人錯過的事情是,當以這種方式使用Graph API時,您只能獲取* public *個人資料圖片。如果用戶的設置使其個人資料圖片是私人的,那麼您將無法得到它(我認爲我們大多數人會同意這一點應該是這樣)。 – LloydDobbler 2013-01-02 17:25:29

+10

它說:「用戶訪問令牌是需要請求此資源」 – Adeem 2014-02-28 02:18:41

相關問題