2010-06-28 18 views
14

Próbuję uzyskać zdjęcie profilowe użytkownika serwisu Facebook na podstawie jego adresu e-mail. W rzeczywistości chcę zaoferować moim użytkownikom opcję między używaniem Gravatar do swojego wizerunku lub Facebooka. Jednak jedynym sposobem, wiem, aby uzyskać użytkownika facebook obraz jest poprzez:Uzyskiwanie obrazka profilu facebooka z adresu e-mail

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

Ponieważ nazwy użytkowników mogą się różnić między facebook i mojej strony chciałbym to zrobić za pośrednictwem adresu e-mail zamiast nazwy użytkownika. Jak mogę zapytać o czyjeś zdjęcie profilowe na Facebooku za pośrednictwem adresu e-mail?

+0

Czy naprawdę możesz to zrobić? Wydaje się, że kwestia bezpieczeństwa umożliwia pobieranie danych z Facebooka na podstawie adresu e-mail, który prawdopodobnie jest prywatnym użytkownikiem. Oczywiście prywatna definicja Facebooka może być luźniejsza od innych ". –

+0

Szukam tej samej rzeczy. Pomyślałem o używaniu user.name w adresie URL, ale działa to tylko wtedy, gdy użytkownik ustawił nazwę użytkownika Facebooka na www.facebook.com/nazwa_użytkownika. – Jorre

+0

Wygląda na to, że klient pocztowy Sparrow (http://sparrowapp.com/) robi to, ale wymaga uwierzytelnienia na Facebooku. –

Odpowiedz

-2

To, o co prosisz, jest częścią tego, dlaczego istnieje Facebook Connect.

Używanie ich niezbyt sprytnie nazwie XFBML można zażądać obraz bezpośrednio: <fb:profile-pic uid="1256100362" facebook-logo="true" size="thumb"> </fb:profile-pic>

Ale trzeba zaimplementować logowania z FB Połącz pierwszy ...

+1

to nadal używa UID - możesz to zrobić już bez połączenia Facebook via, w przypadku, o którym wspomniałeś, http://graph.facebook.com/1256100362/picture?type=large – Mala

+3

tak, szkoda, że ​​możemy Zrób to z md5 (e-mailem), tak jak gravatar robi – Jorre

4

Nie wydaje się być oficjalnym sposobem robienia tego, o co prosisz. Wygląda na to, że Facebook zrobił to celowo, prawdopodobnie z prywatnością. Jest rzeczywiście bardzo łatwo to zrobić w ciągu kilku ekranów skrobaniu krokach jednak:

1) Odwiedź http://www.facebook.com/#!/search.php?q=# {USERS_EMAIL_ADDRESS} & type = wszystko & startowych = SRP

2) Jeżeli strona zwraca „Brak wyników dla twojego zapytanie. ", a następnie nie mają profilu.

3) W przeciwnym razie strona będzie zawierała miniaturę użytkownika dla tego adresu e-mail. (coś w stylu: http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs227.ash2/48219_72120057_3223_q.jpg)

Mógłbym napisać aplikację Sinatra, aby to zrobić za około 5 minut, jeśli ktoś by chciał.

Ale myślę, że gravatar i Facebook powinni po prostu być przyjaciółmi.

+1

Naprawdę to lubię - nie chciałbym skanować ekranu, ale zdecydowanie mogę użyć wyników wyszukiwania, aby automatycznie uzyskać identyfikatory facebook-ID użytkowników i użyć metody w moje pytanie.Jednak wyszukiwanie działa tylko wtedy, gdy jesteś zalogowany, co pokonało mnie, robiąc to programowo. – Mala

20

widzę to pytanie ma kilka lat, ale już samo podejście wyszukiwania mogą być wykonywane przy użyciu Graph API:

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

Można spróbować to na Graph API Explorer. Nie otrzymujesz obrazu profilu bezpośrednio, ale otrzymujesz identyfikator użytkownika, który możesz łatwo wykorzystać, aby uzyskać publiczne zdjęcie profilowe.

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

+0

Wspaniała odpowiedź! To powinno być zaakceptowane. –

+0

Dokładnie - doskonała odpowiedź. :) Rzecz, której wielu ludziom brakuje, jest to, że korzystając z Graph API w ten sposób, jesteś ograniczony do uzyskania * publicznego * profilu zdjęcia. Jeśli ustawienia użytkownika są takie, że ich zdjęcie profilowe jest prywatne, nie będziesz w stanie go uzyskać (co, jak sądzę, większość z nas zgodziłaby się, to jak powinno być). – LloydDobbler

+10

mówi: "Żeton dostępu użytkownika jest wymagany do zażądania tego zasobu" – Adeem

Powiązane problemy