Estou trabalhando em um CMS que busca a imagem do perfil de um usuário no URL do Facebook (isto é, http://facebook.com/users_unique_url ). Como posso fazer isso? Existe uma chamada à API do Faceboook que busca o URL da imagem do perfil do usuário sem que o usuário precise Permitir o aplicativo?
257
?type=large
string de consulta que você pode adicionar. Props por ter uma resposta totalmente muito melhor do que a tela que eu estava digitando, BTW :).<img src="//graph.facebook.com/sarfraz.anees/picture" />
se você mudar entre HTTP e HTTPS ... o protocolo é detectado pelo navegador e você não receberá avisos de conteúdo misto no HTTPS.Mostrar:
50x50 pixels
Largura de 200 pixels
Para salvar (usando PHP)
NOTA: Não use isso . Veja o comentário da @ Foreever abaixo.
Onde $ fid é seu ID de usuário no Facebook.
NOTA: No caso de imagens marcadas como "18+", você precisará de um access_token válido de um usuário com mais de 18 anos:
ATUALIZAÇÃO 2015:
A API do Graph v2.0 não pode ser consultada usando nomes de usuário, você deve
userId
sempre usar .fonte
ATUALIZAÇÃO :
A partir de agosto de 2012, a API foi atualizada para permitir que você recupere imagens de perfil do usuário em tamanhos variados. Adicione os campos opcionais de largura e altura como parâmetros de URL:
onde
WIDTH
eHEIGHT
seus valores de dimensão solicitados.Isso retornará uma foto de perfil com um tamanho mínimo de
WIDTH
xHEIGHT
ao tentar preservar a proporção. Por exemplo,retorna
FIM DE ATUALIZAÇÃO
Para obter a foto do perfil de um usuário, ligue para
onde
USER_ID
pode ser o número de identificação do usuário ou o nome do usuário.Para obter uma imagem de perfil de usuário de um tamanho específico, ligue para
onde
SIZE
deve ser substituído por uma das palavrasdependendo do tamanho desejado.
Essa chamada retornará um URL para uma única imagem com seu tamanho com base no parâmetro de tipo escolhido.
Por exemplo:
retorna um URL para uma versão pequena da imagem.
A API especifica apenas o tamanho máximo para imagens de perfil, não o tamanho real.
Quadrado:
Pequeno
Normal
ampla
Se você chamar o USER_ID / imagem padrão, obterá o tipo quadrado.
ESCLARECIMENTO
Se você ligar (como no exemplo acima)
ele retornará uma resposta JSON se você estiver usando um dos métodos de solicitação do SDK do Facebook . Caso contrário, ele retornará a própria imagem. Para recuperar sempre o JSON, adicione:
igual a:
fonte
&redirect=false
para retornar os dados JSON em vez de redirecionamento para a imagemPara obter o URL da imagem, NÃO o conteúdo binário:
Você deve usar seu ID do FACEBOOK, NÃO O NOME DO USUÁRIO. Você pode obter o seu ID do Facebook lá:
http://findmyfbid.com/
fonte
Código de uma linha simples para salvar uma imagem de perfil de tamanho COMPLETO no seu servidor.
Isso só funcionará se o openssl estiver ativado no php.ini.
fonte
Adicionamos isso como um comentário à resposta aceita, mas consideramos que merecia uma explicação mais longa. A partir de abril de 2015, isso provavelmente será aumentado algumas vezes.
A partir da V2 da API do gráfico, a resposta aceita não funciona mais usando um nome de usuário. Portanto, agora você precisa primeiro do ID do usuário e não pode mais usar um nome de usuário para obtê-lo. Para complicar ainda mais, por motivos de privacidade, o Facebook agora está alterando os IDs de usuário por aplicativo (consulte https://developers.facebook.com/docs/graph-api/reference/v2.2/user/ e https: //developers.facebook .com / docs / apps / upgrade / # upgradeing_v2_0_user_ids ), portanto, você precisará ter algum tipo de autenticação adequada para recuperar um ID do usuário que possa usar. Tecnicamente, a foto do perfil ainda é pública e está disponível em / userid / picture (consulte os documentos em https://developers.facebook.com/docs/graph-api/reference/v2.0/user/picture e este exemplo de usuário: http: //graph.facebook.com/v2.2/4/picture?redirect=0), no entanto, descobrir o ID do usuário padrão de um usuário parece impossível com base apenas no perfil. Seu aplicativo precisaria aprová-lo para interagir com o aplicativo, o que para o meu caso de uso (apenas mostrar uma foto do perfil ao lado do link do perfil do FB) é um exagero.
Se alguém descobriu uma maneira de obter a foto do perfil com base no nome de usuário ou, alternativamente, como obter uma identificação do usuário (mesmo uma alternativa) para recuperar uma foto do perfil, compartilhe! Enquanto isso, o URL antigo do gráfico ainda funciona até abril de 2015.
fonte
Uma maneira é usar o código Gamlet postado em sua resposta:
Salve como
curl.php
Então no seu arquivo:
Eu pensei em publicar isso, porque levei um pouco de tempo para descobrir os detalhes ... Mesmo que as fotos de perfil sejam públicas, você ainda precisa ter um token de acesso para obtê-lo quando você o enrola .
fonte
Existe maneira de fazer isso;)
Obrigado a " http://it.toolbox.com/wiki/index.php/Use_curl_from_PHP_-_processing_response_headers ":
fonte
Solução de trabalho PHP (HTTP GET) de abril de 2015 (sem PHP 5 SDK):
Você pode alterar 'type' no parâmetro:
Quadrado:
Pequeno
Normal
ampla
fonte
Eu estava pensando - talvez o ID seja uma ferramenta útil. Toda vez que um usuário cria uma nova conta, ele deve obter um ID maior. Pesquisei no Google e descobri que existe um método para estimar a data de criação da conta por ID e Massoud Seifi, do metadatascience.com, reuniu alguns bons dados sobre isso.
Leia este artigo:
http://metadatascience.com/2013/03/11/inferring-facebook-account-creation-date-from-facebook-user-id/
E aqui estão alguns IDs para download:
http://metadatascience.com/2013/03/14/lookup-table-for-inferring-facebook-account-creation-date-from-facebook-user-id/
fonte
A postagem do blog Obter a imagem de um objeto gráfico do Facebook pode oferecer outra forma de solução. Use o código no tutorial junto com a API Graph do Facebook e sua biblioteca PHP SDK.
... E tente não usar file_get_contents (a menos que você esteja pronto para enfrentar as consequências - consulte file_get_contents vs curl ).
fonte
Você está preocupado com o tamanho da foto do perfil? no momento da implementação do login com o Facebook usando PHP. Mostraremos a maneira simples de obter uma imagem de perfil de tamanho grande no Facebook PHP SDK. Além disso, você pode obter a imagem em tamanho personalizado do perfil do Facebook.
Defina a dimensão da imagem do perfil usando a seguinte linha de código.
$ userProfile = $ facebook-> api ('/ me? fields = picture.width (400) .height (400)');
verifique esta publicação: http: //www.codexworld.com/how-to-guides/get-large-size-profile-picture-in-facebook-php-sdk/
fonte
@NaturalBornCamper,
Código legal! Aqui está uma função de código simples para esse processo!
Isso retornará o URL da imagem do avatar bruto do Facebook. Sinta-se livre para fazer o que quiser com ele!
fonte
Você pode obter o URI do perfil através da ferramenta online de busca de identificação de facebook
Você também pode passar o parâmetro param com possíveis valores pequeno, normal, grande, quadrado.
Consulte a documentação oficial
fonte