Obtenir une photo de profil utilisateur par identifiant


123

Je travaille maintenant sur une application Web qui est principalement basée sur l'API de Facebook Graph. Je possède des données sur les utilisateurs - en fait, les éventuelles données publiques disponibles - comme le nom et l'identifiant. Je sais également qu'une photo de profil fait partie des données publiques, et je me suis demandé comment je pourrais obtenir un lien direct vers une photo de profil d'un utilisateur uniquement en utilisant son identifiant?

Merci d'avance


Réponses:


295

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

Il y a aussi plus de tailles que "carrées". Consultez la documentation .


31
Pour tous ceux qui veulent le lien vers la documentation: développeurs.facebook.com
Frankie Jarrett

33
Il est préférable de consulter les documents car ils ont également toutes les autres options. Par exemple, si vous voulez une grande image carrée (puisque le carré par défaut est petit), vous devez utiliser https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
sudo

2
existe-t-il un moyen de rechercher simplement l'url de l'image et non l'image elle-même? Souhaiterait télécharger l'image sur le front-end pas via le serveur si possible
Alexander Mills

1
Espérons que cela permettra à quelqu'un d'économiser une étape supplémentaire dans la recherche de son ID de profil - findmyfbid.com
jarmerson

3
utilisez redirect = 0 pour obtenir la description JSON (y compris l'url) au lieu de l'image elle
Ilya Denisov

123

Vous pouvez utiliser les URL suivantes pour obtenir différentes tailles d'images de profil. Veuillez vous assurer d'ajouter l'identifiant Facebook à l'URL.

Photo de grande taille https://graph.facebook.com/ {facebookId} / picture? Type = large

Photo de taille moyenne https://graph.facebook.com/ {facebookId} / picture? Type = normal

Photo de petite taille https://graph.facebook.com/ {facebookId} / picture? Type = small

Photo carrée https://graph.facebook.com/ {facebookId} / picture? Type = square


2
C'est ainsi que j'ai pu découvrir mon propre FacebookId: développeurs.facebook.com
tools

39

Pour obtenir la plus grande taille de l'image

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

ou tout ce dont vous avez besoin en tant que taille. D'après l'expérience, type = large n'est pas le plus grand résultat que vous puissiez obtenir.


1
peut également transmettre: graph.facebook.com {userID}? fields = picture.type (large) ceci est utile lorsque vous avez quelque chose comme ça, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (large) comme mentionné dans d'autres réponses, vous pouvez remplacer grand par normal, petit, carré ...
yajnesh

Cela n'a-t-il pas besoin d'un jeton d'accès (de nos jours)?
Bernoulli IT


13

Ceci est littéralement sur la première page de la documentation de l'API Graph .

  • /OBJECT_ID/picture renvoie une redirection vers l'image de l'objet (dans ce cas les utilisateurs)
  • /OBJECT_ID/?fields=picture renvoie l'URL de l'image

Exemples:

<img src="https://graph.facebook.com/4/picture"/> utilise une redirection HTTP 301 vers la photo de profil de Zuck

https://graph.facebook.com/4?fields=picture renvoie l'URL elle-même


1
Hélas, ce n'est plus sur la page d'accueil de la documentation de l'API Graph, c'est maintenant ici: développeurs.facebook.com
Igy

3
NON , ce n'est pas sur la page d'accueil de la documentation de l'API Graph. Vous feriez mieux d'éviter les déclarations de contrainte de temps sur SO. Vous savez ... les choses changent assez vite ces jours-ci ...
Gianluca Ghettini

et ironiquement, votre réponse est de toute façon beaucoup plus utile avec des informations plus pertinentes que la page de l'API graphique :-)
Simon_Weaver

6

Ici, cette API vous permet d'obtenir facilement des photos de profil fb, google et twitter

https://www.avatars.io/

C'est une API qui renvoie l'image de profil lorsqu'on lui donne un nom d'utilisateur pour une variété de réseaux sociaux, y compris Twitter, Facebook, Instagram et gravatar. Il dispose de bibliothèques pour iOS, Android, Ruby, Node, PHP, Python et JavaScript.


1
C'est vraiment fantastique! Simplement parce que SO aime que les liens soient décrits un peu plus en détail; c'est une API qui renvoie l'image de profil lorsqu'on lui donne un nom d'utilisateur pour une variété de réseaux sociaux, y compris Twitter, Facebook, Instagram et gravatar. Il dispose de bibliothèques pour iOS, Android, Ruby, Node, PHP, Python et JavaScript. Un logiciel exceptionnel. Il peut être trouvé sur GitHub .
Ari Cooper-Davis

3

vous pouvez l'obtenir en utilisant cette url: vous obtiendrez l'image HD (taille max)

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

n'oubliez pas redirect = false ou il renverra une erreur


2

Utilisez l'url comme: https: //graph.facebook.com/ user_id / picture? Type = square dans src de la balise img. le type peut être petit, grand.


2

Vous pouvez utiliser AngularJs pour cela, sa fonction de liaison de données à deux voies obtiendra une solution avec un minimum d'effort et moins de code.

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

J'espère que cela répond à votre question.Remarque: vous pouvez également utiliser une autre bibliothèque.


1

Grâce au SDK Javascript (v2.12 - avril 2017), vous pouvez obtenir les détails de la demande d'image de cette façon:

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

Pour obtenir la réponse JSON, le paramètre redirectavec 0 (zéro) comme valeur est important car la requête redirige vers l'image par défaut. Vous pouvez toujours ajouter d'autres paramètres dans la même URL. Exemples:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": une image 100x100 sera renvoyée;
  • "/" + uid + "/picture?redirect=0&type=large": une image 200x200 est renvoyée. Les autres valeurs de type possibles incluent: petit , normal , album et carré .


1

Conformément à la dernière version actuelle de l'API Facebook 3.2, pour les utilisateurs, vous pouvez utiliser cette méthode générique pour obtenir une photo de profil: https://graph.facebook.com/v3.2/{user-id}/picture?type=square, vous pouvez visitez la documentation pour l'image de l'utilisateur ici . Les valeurs possibles pour le paramètre de type dans l'URL peuvent être small, normal, album, large, square

Pour les groupes et les pages , l'image de profil n'est pas disponible directement. Vous devez les obtenir en utilisant un jeton d'accès. Pour les groupes, vous devez utiliser un jeton d'accès utilisateur et pour les pages, vous pouvez utiliser à la fois un jeton d'accès utilisateur et un jeton d'accès à la page.

Vous pouvez obtenir l'image de profil du groupe ou de la page à l'aide de l'URL générique: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

J'espère que cela sera utile pour les personnes qui recherchent une image de profil de page ou de groupe.


Pour la plupart des pages, j'obtiens l'image de profil des pages sans jeton d'accès, mais pour certaines pages, il renvoie une image de point d'interrogation en tant que réponse au format ci-dessous. {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} Un indice?
xyz

0

Vous pouvez utiliser le point de terminaison suivant pour obtenir l'image.jfif au lieu de jpg:

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

Notez que vous ne pourrez pas voir l'image, téléchargez-la uniquement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.