Kimliğe göre kullanıcı profil resmini alın


123

Şimdi çoğunlukla facebook grafik api'sine dayanan bir web uygulaması üzerinde çalışıyorum. Kullanıcılarla ilgili bazı verileri tutuyorum - aslında mevcut olası halka açık veriler - isim ve kimlik gibi. Ayrıca bir profil resminin herkese açık verilerin bir parçası olduğunu da biliyorum ve bir kullanıcının profil resmine yalnızca kimliğini kullanarak nasıl doğrudan bağlantı alabileceğimi merak ettim.

Şimdiden teşekkürler


Yanıtlar:


295

http://graph.facebook.com/ "+ facebookId +" / picture? type = square Örneğin: http://graph.facebook.com/67563683055/picture?type=square

"Kare" dışında daha fazla boyut da vardır. Dokümanlara bakın .



33
Dokümanlara bakmak en iyisidir çünkü diğer tüm seçeneklere de sahipler. Örneğin, büyük, kare bir görüntü istiyorsanız (kare varsayılanı küçük olduğundan), kullanmanız gerekir https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
sudo

2
Görselin kendisini değil, sadece görsel url'sini sorgulamanın bir yolu var mı? Görüntüyü mümkünse sunucu üzerinden değil ön uçta yüklemek istiyor
Alexander Mills

1
Umarım bu, birisine profil kimliklerini bulmada ekstra bir adım kazandırır - findmyfbid.com
jarmerson

3
resmin kendisi yerine JSON açıklamasını (url dahil) almak için redirect = 0 kullanın
Ilya Denisov

123

Farklı boyutlarda profil resimleri elde etmek için aşağıdaki url'leri kullanabilirsiniz. Lütfen url'ye Facebook kimliği eklediğinizden emin olun.

Büyük boyutlu fotoğraf https://graph.facebook.com/ {facebookId} / picture? Type = large

Orta boy fotoğraf https://graph.facebook.com/ {facebookId} / picture? Type = normal

Küçük boyutlu fotoğraf https://graph.facebook.com/ {facebookId} / picture? Type = small

Kare fotoğraf https://graph.facebook.com/ {facebookId} / picture? Type = square


2
Kendi Facebook
Ryan

39

Görüntünün en büyük boyutunu elde etmek için

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720) 

veya boyut olarak ihtiyacınız olan herhangi bir şey. Deneyime dayanarak, tür = büyük elde edebileceğiniz en büyük sonuç değildir.


1
ayrıca şunu da iletebilir: graph.facebook.com { userID }? fields = resim.type (büyük) bu, böyle bir şeye sahip olduğunuzda kullanışlıdır, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (large) diğer yanıtlarda belirtildiği gibi büyük yerine normal, küçük, kare ...
yajnesh

Bunun bir erişim jetonuna ihtiyacı yok mu (bugünlerde)?
Bernoulli IT


13

Bu kelimenin tam anlamıyla Graph API belgelerinin ön sayfasında yer almaktadır .

  • /OBJECT_ID/picture nesnenin resmine bir yönlendirme döndürür (bu durumda kullanıcılar)
  • /OBJECT_ID/?fields=picture resmin URL'sini döndürür

Örnekler:

<img src="https://graph.facebook.com/4/picture"/> Zuck'ın profil resmine bir HTTP 301 yönlendirmesi kullanır

https://graph.facebook.com/4?fields=picture URL'nin kendisini döndürür


1
Ne yazık ki, artık Graph API belgelerinin ana sayfasında değil, şimdi burada: developer.facebook.com/docs/graph-api/using-graph-api
Igy

3
HAYIR , Graph API belgelerinin ön sayfasında yer almıyor. SO'da zaman kısıtlaması ifadelerinden kaçınsanız iyi olur. Biliyorsun .. o günlerde işler çok hızlı değişiyor ...
Gianluca Ghettini

ve ironik bir şekilde cevabınız grafik api sayfasından daha alakalı bilgilerle çok daha kullanışlıdır :-)
Simon_Weaver

6

Burada, bu api, fb, google ve twitter profil resimlerini kolayca almanızı sağlar

https://www.avatars.io/

Twitter, Facebook, Instagram ve gravatar gibi çeşitli sosyal ağlar için bir kullanıcı adı verildiğinde profil resmini döndüren bir API'dir. İOS, Android, Ruby, Node, PHP, Python ve JavaScript için kitaplıkları vardır.


1
Bu gerçekten harika! Sırf SO bağlantıların biraz daha detaylı tanımlanmasını sevdiği için; Twitter, Facebook, Instagram ve gravatar dahil çeşitli sosyal ağlar için bir kullanıcı adı verildiğinde profil resmini döndüren bir API'dir. İOS, Android, Ruby, Node, PHP, Python ve JavaScript için kitaplıkları vardır. Olağanüstü bir yazılım parçası. GitHub'da bulunabilir .
Ari Cooper-Davis

3

Bu url'yi kullanarak bunu elde edebilirsiniz: resmi HD (maksimum boyut) alacaksınız

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)&redirect=false

unutma redirect = false, yoksa bir hata döndürecektir


2

Url'yi şu şekilde kullanın: https: //graph.facebook.com/ user_id / picture? Type = square img etiketinin src'sinde . türü küçük, büyük olabilir.


2

Bunun için AngularJs kullanabilirsiniz, İki yönlü veri bağlama özelliği minimum çaba ve daha az kodla çözüm elde edecektir.

<div> <input type="text" name="" ng-model="fbid"><br/> <img src="https://graph.facebook.com/{{fbid}}/picture?type=normal"> </div>

Umarım bu soru sorunuzu yanıtlar.


1

Yoluyla JavaScript SDK (v2.12 - Nisan 2017) Eğer resim isteği bu şekilde ayrıntılarını alabilirsiniz:

FB.api("/" + uid + "/picture?redirect=0", function (response) {
  console.log(response);

  // prints the following:
  //data: {
  //  height: 50
  //  is_silhouette: false
  //  url: "https://lookaside.facebook.com/platform/profilepic/?asid=…&height=50&width=50&ext=…&hash…"
  //  width: 50
  //}

  if (response && !response.error) {
    // change the src attribute of img elements
    [...document.getElementsByClassName('fb-user-img')].forEach(
      i => i.src = response.data.url
    );

    // OR redirect to the URL above
    location.assign(response.data.url);
  }
});

JSON yanıtı parametresini almak için redirectbirlikte 0 değeri olarak (sıfır) varsayılan olarak görüntüye istek yönlendirmeler beri önemlidir. Yine de aynı URL'ye başka parametreler ekleyebilirsiniz. Örnekler:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": 100x100 boyutunda bir resim döndürülür;
  • "/" + uid + "/picture?redirect=0&type=large": 200x200 resim döndürülür. Diğer olası tür değerleri şunları içerir: küçük , normal , albüm ve kare .


1

Mevcut en son Facebook API sürüm 3.2'ye göre, kullanıcılar için bu genel yöntemi kullanarak profil resmi elde edebilirsiniz https://graph.facebook.com/v3.2/{user-id}/picture?type=square yapabilirsiniz kullanıcı resmi için belgeleri buradan ziyaret edin . URL'deki tür parametresi için olası değerler küçük, normal, albüm, büyük, kare olabilir

Gruplar ve Sayfalar için için profil resmi doğrudan kullanılamaz. Onları erişim belirteci kullanarak almalısınız. Gruplar için Kullanıcı Erişim Jetonunu kullanmanız gerekir ve Sayfalar için hem Kullanıcı Erişim Jetonunu hem de Sayfa Erişim Jetonunu kullanabilirsiniz.

Genel URL'yi kullanarak Grubun veya Sayfanın Profil Resmini alabilirsiniz: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

Umarım bu, Sayfa veya Grup Profili resmi arayan kişiler için yararlıdır.


Sayfaların çoğu için erişim belirteci olmadan sayfaların profil resmini alıyorum, ancak bazı sayfalarda aşağıdaki formatta yanıt olarak bir soru işareti resmi döndürüyor. {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} Herhangi Bir İpucu?
xyz

0

İmage.jfif dosyasını jpg yerine almak için aşağıdaki uç noktayı kullanabilirsiniz:

https://graph.facebook.com/v3.2/{user-id}/picture

Görseli göremeyeceğinizi, sadece indireceğinizi unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.