Ottieni l'immagine del profilo utente per Id


123

Ora sto lavorando a un'applicazione web che si basa principalmente sull'API del grafico di Facebook. Conservo alcuni dati sugli utenti - in realtà, i possibili dati pubblici disponibili - come nome e ID. So anche che un'immagine del profilo fa parte dei dati pubblici e mi chiedevo come sarò in grado di ottenere un collegamento diretto a un'immagine del profilo di un utente solo utilizzando il suo id?

Grazie in anticipo


Risposte:


295

http://graph.facebook.com/ "+ facebookId +" / picture? type = square Ad esempio: http://graph.facebook.com/67563683055/picture?type=square

Ci sono anche più misure oltre al "quadrato". Vedi i documenti .


31
Per chiunque desideri il collegamento ai documenti: developers.facebook.com/docs/graph-api/reference/user/picture
Frankie Jarrett

33
È meglio guardare i documenti perché hanno anche tutte le altre opzioni. Ad esempio, se desideri un'immagine quadrata grande (poiché l'impostazione predefinita del quadrato è piccola), devi usare https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
sudo

2
c'è un modo per cercare solo l'URL dell'immagine e non l'immagine stessa? Vorrei caricare l'immagine sul front-end, non tramite il server, se possibile
Alexander Mills,

1
Si spera che questo salverà qualcuno un ulteriore passaggio nella ricerca del proprio ID profilo - findmyfbid.com
jarmerson

3
usa redirect = 0 per ottenere la descrizione JSON (incl. URL) invece dell'immagine stessa
Ilya Denisov

123

È possibile utilizzare i seguenti URL per ottenere diverse dimensioni di immagini del profilo. Assicurati di aggiungere l'ID di Facebook all'URL.

Foto di grandi dimensioni https://graph.facebook.com/ {facebookId} / picture? Type = large

Foto di medie dimensioni https://graph.facebook.com/ {facebookId} / picture? Type = normal

Foto di piccole dimensioni https://graph.facebook.com/ {facebookId} / picture? Type = small

Foto quadrata https://graph.facebook.com/ {facebookId} / picture? Type = square


2
È così che sono riuscito a scoprire il mio FacebookId: developers.facebook.com/tools/explorer/…
Ryan

39

Per ottenere la dimensione massima dell'immagine

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

o qualsiasi altra cosa di cui hai bisogno come taglia. In base all'esperienza, il tipo = grande non è il risultato più grande che puoi ottenere.


1
può anche passare: graph.facebook.com { userID }? fields = picture.type (large) questo è utile quando hai qualcosa di simile, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (large) come menzionato in altre risposte puoi sostituire grande con normale, piccolo, quadrato ...
yajnesh

Non è necessario un token di accesso (al giorno d'oggi)?
Bernoulli IT


13

Questo è letteralmente sulla prima pagina della documentazione dell'API Graph .

  • /OBJECT_ID/picture restituisce un reindirizzamento all'immagine dell'oggetto (in questo caso gli utenti)
  • /OBJECT_ID/?fields=picture restituisce l'URL dell'immagine

Esempi:

<img src="https://graph.facebook.com/4/picture"/> utilizza un reindirizzamento HTTP 301 all'immagine del profilo di Zuck

https://graph.facebook.com/4?fields=picture restituisce l'URL stesso


1
Purtroppo, non è più sulla home page dei documenti dell'API Graph, ora è qui: developers.facebook.com/docs/graph-api/using-graph-api
Igy

3
NO , non è sulla prima pagina della documentazione dell'API Graph. Faresti meglio a evitare le dichiarazioni di vincoli di tempo su SO. Sai .. le cose cambiano abbastanza velocemente di quei giorni ...
Gianluca Ghettini

e ironicamente la tua risposta è molto più utile con informazioni più pertinenti rispetto alla pagina
dell'api

6

Qui, questa API ti consente di ottenere facilmente le foto dei profili di Facebook, Google e Twitter

https://www.avatars.io/

È un'API che restituisce l'immagine del profilo quando viene fornito un nome utente per una varietà di social network tra cui Twitter, Facebook, Instagram e Gravatar. Ha librerie per iOS, Android, Ruby, Node, PHP, Python e JavaScript.


1
È davvero fantastico! Solo perché a SO piace che i collegamenti siano descritti un po 'più in dettaglio; è un'API che restituisce l'immagine del profilo quando viene fornito un nome utente per una varietà di social network tra cui Twitter, Facebook, Instagram e Gravatar. Ha librerie per iOS, Android, Ruby, Node, PHP, Python e JavaScript. Un software eccezionale. Può essere trovato su GitHub .
Ari Cooper-Davis

3

puoi ottenerlo usando questo URL: otterrai l'immagine HD (dimensione massima)

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

non dimenticare redirect = false o restituirà un errore


2

Usa URL come: https: //graph.facebook.com/ user_id ? / Immagine type = piazzale src del tag img. il tipo può essere piccolo, grande.


2

Puoi usare AngularJs per questo, la sua funzione di data binding a due vie otterrà una soluzione con il minimo sforzo e meno codice.

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

Spero che questo risponda alla tua domanda Nota: puoi usare anche altre librerie.


1

Tramite Javascript SDK (v2.12 - aprile 2017) è possibile ottenere i dettagli della richiesta immagine in questo modo:

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);
  }
});

Per ottenere la risposta JSON il parametro redirectcon 0 (zero) come valore è importante poiché la richiesta reindirizza all'immagine per impostazione predefinita. Puoi comunque aggiungere altri parametri nello stesso URL. Esempi:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": verrà restituita un'immagine 100x100;
  • "/" + uid + "/picture?redirect=0&type=large": viene restituita un'immagine 200x200. Altri possibili valori di tipo includono: piccolo , normale , album e quadrato .


1

Secondo l'ultima versione corrente dell'API di Facebook 3.2, per gli utenti è possibile utilizzare questo metodo generico per ottenere l'immagine del profilo è https://graph.facebook.com/v3.2/{user-id}/picture?type=square è possibile visita la documentazione per l'immagine dell'utente qui . I possibili valori per il parametro di tipo nell'URL possono essere piccolo, normale, album, grande, quadrato

Per i gruppi e le pagine , l'immagine del profilo non è disponibile direttamente. Devi ottenerli utilizzando il token di accesso. Per i gruppi devi usare il token di accesso utente e per le pagine puoi usare sia il token di accesso utente che il token di accesso alla pagina.

Puoi ottenere l'immagine del profilo del gruppo o della pagina utilizzando l'URL generico: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

Spero che questo sia utile per le persone che cercano la pagina o l'immagine del profilo del gruppo.


Per la maggior parte delle pagine, ricevo l'immagine del profilo delle pagine senza token di accesso, ma per alcune pagine restituisce un'immagine del punto interrogativo come risposta nel formato seguente. {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} Qualche indizio?
xyz

0

Puoi utilizzare il seguente endpoint per ottenere image.jfif invece di jpg:

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

Nota che non sarai in grado di vedere l'immagine, ma solo scaricarla.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.