Obter imagem de perfil de usuário por ID


123

Agora estou trabalhando em um aplicativo da Web que é principalmente baseado na API de gráfico do Facebook. Eu mantenho alguns dados sobre usuários - na verdade, os possíveis dados públicos disponíveis - como nome e ID. Também sei que uma foto de perfil faz parte dos dados públicos e me perguntei como poderei obter um link direto para uma foto de perfil de um usuário apenas usando seu ID?

desde já, obrigado


Respostas:


295

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

Há também mais tamanhos além de "quadrado". Veja os documentos .



32
É melhor olhar para os documentos, porque eles também têm todas as outras opções. Por exemplo, se você deseja uma imagem quadrada grande (já que o padrão do quadrado é pequeno), você deve usar https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
— Sudo

2
existe uma maneira de apenas consultar o URL da imagem e não a imagem em si? Gostaria de fazer upload da imagem no front-end não através do servidor, se possível
— Alexander Mills

1
Esperemos que isto irá salvar alguém um passo extra em encontrar o seu ID perfil - findmyfbid.com
— jarmerson

3
uso redirect = 0 para obter a descrição JSON (incl url.) em vez da própria imagem
— Ilya Denisov

123

Você pode usar os seguintes URLs para obter tamanhos diferentes de imagens de perfil. Certifique-se de adicionar o ID do Facebook ao URL.

Foto em tamanho grande https://graph.facebook.com/ {facebookId} / picture? Type = large

Foto de tamanho médio https://graph.facebook.com/ {facebookId} / picture? Type = normal

Foto de tamanho pequeno https://graph.facebook.com/ {facebookId} / picture? Type = small

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


2
Foi assim que eu pude descobrir meu próprio FacebookID: developers.facebook.com/tools/explorer/…
— Ryan

39

Para obter o maior tamanho da imagem

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

ou qualquer outra coisa que você precise como tamanho. Com base na experiência, type = large não é o maior resultado que você pode obter.


1
também pode passar: graph.facebook.com {ID do usuário}? fields = picture.type (large) isso é útil quando você tem algo parecido com isto, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (grande) , como mencionado em outras respostas você pode substituir grande com normal, pequena, quadrada ...
— yajnesh

Isso não precisa de um token de acesso (hoje em dia)?
— Bernoulli IT


13

Isso está literalmente na primeira página da documentação da API do Graph .

  • /OBJECT_ID/picture retorna um redirecionamento para a imagem do objeto (neste caso, os usuários)
  • /OBJECT_ID/?fields=picture retorna o URL da imagem

Exemplos:

<img src="https://graph.facebook.com/4/picture"/> usa um redirecionamento HTTP 301 para a foto do perfil de Zuck

https://graph.facebook.com/4?fields=picture retorna o próprio URL


1
Infelizmente, ele não é mais na página inicial dos docs Graph API, é agora aqui: developers.facebook.com/docs/graph-api/using-graph-api
— Igy

3
NÃO , não está na primeira página da documentação da API do Graph. É melhor evitar declarações de restrição de tempo no SO. Você sabe .. as coisas mudam muito rápido esses dias ...
— Gianluca Ghettini

e, ironicamente, a sua resposta é muito mais útil com informações mais relevantes do que a página api gráfico de qualquer maneira :-)
— Simon_Weaver

6

Aqui, esta API permite que você obtenha facilmente fotos de perfil no fb, google e twitter

https://www.avatars.io/

É uma API que retorna a imagem do perfil quando recebe um nome de usuário para uma variedade de redes sociais, incluindo Twitter, Facebook, Instagram e gravatar. Possui bibliotecas para iOS, Android, Ruby, Node, PHP, Python e JavaScript.


1
Isso é realmente fantástico! Só porque o SO gosta de links para serem descritos com mais detalhes; é uma API que retorna a imagem do perfil quando recebe um nome de usuário para várias redes sociais, incluindo Twitter, Facebook, Instagram e gravatar. Possui bibliotecas para iOS, Android, Ruby, Node, PHP, Python e JavaScript. Uma peça excepcional de software. Pode ser encontrado no GitHub .
— Ari Cooper-Davis

3

você pode obtê-lo usando este URL: você receberá a imagem em HD (tamanho máximo)

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

não esqueça redirect = false ou ele retornará um erro


2

Use o URL como: https: //graph.facebook.com/ user_id / picture? Type = square no src da tag img. O tipo pode ser pequeno, grande.


2

Você pode usar AngularJs para isso. Seu recurso de ligação de dados de duas vias obterá solução com o mínimo esforço e menos código.

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

Espero que isso responda à sua consulta.Nota: Você também pode usar outra biblioteca.


1

Através do Javascript SDK (v2.12 - abril de 2017), você pode obter os detalhes da solicitação de imagem da seguinte maneira:

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

Para obter a resposta JSON, o parâmetro redirectcom 0 (zero) como valor é importante, pois a solicitação é redirecionada para a imagem por padrão. Você ainda pode adicionar outros parâmetros no mesmo URL. Exemplos:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": uma imagem 100x100 será retornada;
  • "/" + uid + "/picture?redirect=0&type=large": uma imagem de 200 x 200 é retornada. Outros possíveis valores de tipo incluem: pequeno , normal , álbum e quadrado .

1

Basta seguir como URL abaixo

https://graph.facebook.com/facebook_user_id/picture?type=square

O tipo pode ser normal, pequeno, médio, grande. Ou quadrado (se você deseja obter uma imagem quadrada, o tamanho do quadrado é limitado a 50x50).


2
Se você deseja obter uma imagem quadrada, o tamanho do quadrado é limitado a 50x50.
— Rahul Gupta 29/10

Para mais detalhes follow Facebook Graph API developers.facebook.com/docs/graph-api/reference/v3.2/user/...
— Rahul Gupta

1

De acordo com a corrente mais recente Facebook API versão 3.2, para os usuários, você pode usar este método genérico para obter imagem no perfil é https://graph.facebook.com/v3.2/{user-id}/picture?type=square você pode visite a documentação para a foto do usuário aqui . Os valores possíveis para o parâmetro type no URL podem ser pequenos, normais, álbuns, grandes, quadrados

Para Grupos e Páginas , a foto do perfil não está disponível diretamente. Você precisa obtê-los usando o token de acesso. Para grupos, é necessário usar o token de acesso do usuário e, para o Pages, o token de acesso do usuário e o token de acesso à página.

Você pode obter uma imagem de perfil de grupo ou de página usando o URL genérico: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

Espero que isso seja útil para pessoas que estão procurando imagens de perfil de página ou de grupo.


Na maioria das páginas, estou obtendo a foto do perfil das páginas sem token de acesso, mas em algumas páginas ela retorna uma imagem de ponto de interrogação como resposta no formato abaixo. {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} Alguma pista?
— Xyz

0

Você pode usar o seguinte ponto de extremidade para obter o image.jfif em vez de jpg:

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

Observe que você não poderá ver a imagem, apenas faça o download.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.