Pegar dados Facebook com cURL

7,675 views
Skip to first unread message

Pedro Vidal

unread,
Jun 5, 2012, 3:31:34 PM6/5/12
to php-b...@googlegroups.com
Olá pessoal, andei dando uma pesquisada mas até agora não consegui encontrar solução para o que preciso:

Preciso pegar a FOTO e o NOME do usuário caso ele esteja logado. Tentei fazer com o cURL mas não obtive sucesso. Se mando abrir o link http://facebook.com/me num iframe, ele abre na boa mas não consigo pegar os dados que preciso, e quando tento abrir usando o cURL ele me mostra apenas a tela de login, por mais que o usuário esteja logado. 

Alguma sugestão?


Atenciosamente, 
Pedro Vidal

Pedro Vidal

unread,
Jun 5, 2012, 3:32:43 PM6/5/12
to php-b...@googlegroups.com
Detalhe: não pode ser feito utilizando a API do facebook porque o usuário pode estar ou não logado no FB, e isso vai ser pego numa página externa.

Michel Felipe

unread,
Jun 5, 2012, 3:45:47 PM6/5/12
to php-b...@googlegroups.com
Utilize OAuth para fazer a autenticação e pegar os dados. Fiz assim utilizando o Zend Framework e funcionou.

Dê uma olhada nesse link. Utilize ele pra saber como resgatar uma imagem, pq pelo OAuth, vc pega os dados pela resposta da HTTP request mas a imagem n vinha:

--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.



--
Atenciosamente


Analista de Sistemas
Politec - Prodeb

PHP / Zend Framework / CakePHP / Java Desktop / JavascriptMVC / EXTJS / JQuery / PostGres/ MySQL

71 9196-4178
www.vidacriativa.com.br

Marcelo Rodrigues

unread,
Jun 5, 2012, 4:46:54 PM6/5/12
to php-b...@googlegroups.com
Use o Graph para isso. Basta ter o ID do usuario (e isso serve para qualquer OBJETO, ou seja, pagina, comentario, post, usuario, enfim, qualquer coisa que tenha um ID no Facebook). O retorno é um JSON, basta usar json_decode, e pronto. 


A foto, você recupera pelo graph também, passando:


Marcelo

Em 5 de junho de 2012 16:32, Pedro Vidal <pedro...@gmail.com> escreveu:

Pedro Vidal

unread,
Jun 5, 2012, 5:32:54 PM6/5/12
to php-b...@googlegroups.com
Pois esta é a questão amigos, eu não tenho o ID do usuário.
A idéia é que estou tentando produzir um banner que interaja com o usuário, para isto pretendo pegar a foto do usuário (se ele estiver logado) +  o seu nome pra exibir em uma área dentro do banner.
Como não tenho nenhum dado do usuário como ID ou qualquer coisa assim, preciso dar um jeito de pegar os dados dele através do acesso à página www.facebook.com/me. (caso o usuário esteja logado no facebook, este endereço abre a página de perfil dele).

Seria possível fazer isto?

Hudson Martins

unread,
Jun 5, 2012, 5:35:35 PM6/5/12
to php-b...@googlegroups.com
Para maiores informações,

https://developers.facebook.com/
Hudson Martins
PHP Developer
IT Specialist at IBM

Mediação Core

Wender Teixeira

unread,
Jun 5, 2012, 6:11:45 PM6/5/12
to php-b...@googlegroups.com
O cara fala que não é por api e os cara manda os sites de documentação do API DO FACEBOOK ,,


Wender Teixeira

unread,
Jun 5, 2012, 6:12:21 PM6/5/12
to php-b...@googlegroups.com
Eu fazia pelo o m.facebook.com.br , e por cURL e funciona 100% tinha até um exemplo 

Pedro Vidal

unread,
Jun 5, 2012, 6:44:23 PM6/5/12
to php-b...@googlegroups.com
Opa Wender, pois é, acontece, heheheh...
vou testar com essa tua URL que tu mandou pra tentar fazer com cURL, assim que tiver uma resposta eu posto aqui pra gente deixar esclarecida a parada!


Vlw pela ajuda até então!
Pedro Vidal



Em 5 de junho de 2012 19:12, Wender Teixeira <rtz...@gmail.com> escreveu:
Eu fazia pelo o m.facebook.com.br , e por cURL e funciona 100% tinha até um exemplo 

--

Pedro Vidal

unread,
Jun 5, 2012, 6:52:35 PM6/5/12
to php-b...@googlegroups.com
Testei aqui, parece que não deu certo, pois ele ficou mostrando a tela de login do FB...
abaixo o que retornou:
http://pastebin.com/2Y6xniLx

Mas acho que o caminho é o cURL, certo?

Marcelo Rodrigues

unread,
Jun 5, 2012, 8:54:04 PM6/5/12
to php-b...@googlegroups.com
Até onde entendi, ele não queria usar a API via SDK, que necessita de  um APPID para fazer o processo de autenticação e interagir com o usuário logado ou não logado. 

O graph possui métodos que para serem lidos exigem o access_token e outros, não, são publicos. 

Marcelo

Em 5 de junho de 2012 19:11, Wender Teixeira <rtz...@gmail.com> escreveu:
O cara fala que não é por api e os cara manda os sites de documentação do API DO FACEBOOK ,,


--

Marcelo Rodrigues

unread,
Jun 5, 2012, 9:03:51 PM6/5/12
to php-b...@googlegroups.com
Acho que vocês estão confundindo as coisas. Uma coisa é pegar dados do usuário usando a sessão DELE no BROWSER outra é pegar dados via CURL. 

Com o CURL, é como se você estivesse navegando em OUTRO browser, é outra sessão. A sua aplicação é o "usuário". 

Você pode até tentar, fazer o esquema do iframe, chamando facebook.com/me. Quando se faz isso, ele redireciona o usuário para outra URL com o seu ID => facebook.com/ID_DO_USUARIO. Com javascript é possível recuperar essa url com document.location. Pegando essa URL, você consegue o ID, e a partir dele, usar a api do Graph. É a unica solução que vejo. 

Fora isso, qual o problema em fazer essa iteração usando o SDK?

Marcelo

Wender Teixeira

unread,
Jun 5, 2012, 9:33:23 PM6/5/12
to php-b...@googlegroups.com
Aqui um exemplo que fiz sem usar API , ou SDK , basta por o ID ou o nome do perfil do usuário no formulário e pegar o avatar



Não usei cURL , nem precisa , pois e muito simples 

Eduardo Kraus

unread,
Jun 6, 2012, 2:15:13 AM6/6/12
to php-b...@googlegroups.com
com o "$viadinho" você pegou pesado, heheheh...

Para conseguir o ID do usuário, você primeiro tem que pedir para ele compartilhar este dado com você....


Veja no topo do meu site: http://qa.eduardokraus.com/

Eduardo Kraus
Professor
kr...@eduardokraus.com
www.eduardokraus.com
Blog PHP php.eduardokraus.com
Blog Adobe Flex flex.eduardokraus.com




--

Marcelo Rodrigues

unread,
Jun 6, 2012, 7:36:00 AM6/6/12
to php-b...@googlegroups.com
Obvio que dessa forma vai funcionar. Porém, o que ele quer é fazer isso sem a intervenção do USUÁRIO. Com o ID do usuário, usando o Graph, se consegue os dados básicos mesmo, como eu disse anteriormente. 

Marcelo

Em 5 de junho de 2012 22:33, Wender Teixeira <rtz...@gmail.com> escreveu:

--

Pedro Vidal

unread,
Jun 6, 2012, 9:45:45 AM6/6/12
to php-b...@googlegroups.com
Olá Marcelo, pois é, em nenhum momento o usuário vai INFORMAR alguma coisa, quero pegar a foto e nome CASO ele esteja logado.
Não tem como fazer com a SDK pq pra isso ele teria que dar permissão ao aplicativo.


Vou testar essa idéia aqui do marcelo pra abrir o FB num iframe, pegar o document.location com javascript e tentar extrair o ID do usuário. Onde eu conseguir pegar o ID, aí a coisa rola tranquilamente.

Grato pela ajuda!
Pedro Vidal




Em 6 de junho de 2012 08:36, Marcelo Rodrigues <marcelo....@gmail.com> escreveu:
que

Wender Teixeira

unread,
Jun 6, 2012, 10:19:59 AM6/6/12
to php-b...@googlegroups.com
id = nome :)

Henrique Luis de Souza

unread,
Jun 6, 2012, 12:16:23 PM6/6/12
to php-b...@googlegroups.com
Fala Pedro,

Pra você conseguir capturar os dados do usuário do face, você tem que fazer ele curtir algo ou aceitar algo na sua página, o usuário tem que deixar você capturar isso, é um política de privacidade do face, o pessoal já te passou os links aí em cima... Acho que melhor solução seria criar uma app mesmo, fazer ele logar em sua página, ele aceitando esse app, você pode puxar os dados que quiser.

Com o sdk tanto (php como para javascript), você consegue manipular esses dados, publicar no mural, fazer o diabo a quatro... dica: cuidado com o 'probleminha' dos ies (7,8) de perderem a sessão, cookies, etc., etc., etc.

Essa acho que seria a melhor opção.

Abraço! 

:)

Em 6 de junho de 2012 11:19, Wender Teixeira <rtz...@gmail.com> escreveu:
id = nome :)

Pedro Henrique

unread,
Jun 6, 2012, 12:36:08 PM6/6/12
to php-b...@googlegroups.com
Quando se fala de dados sim, mas para pegar apenas a foto não é preciso permissão. bastar usar url e passar o id do usuário do facebook.

Pedro Vidal

unread,
Jun 6, 2012, 2:02:48 PM6/6/12
to php-b...@googlegroups.com
Pois é pessoal, o problema é que não tenho como pegar a ID do usuário sem a permissão dele...

Acho que vou desistir e jogar a toalha, parece que não existe mesmo como fazer isso...

Obrigado a todos pela ajuda!

Wender Teixeira

unread,
Jun 6, 2012, 2:42:08 PM6/6/12
to php-b...@googlegroups.com
Pow kara olha no exemplo que fiz , se você não tiver o ID você pega pelo o Nome do perfil dele tipo

https://www.facebook.com/Wennder

Pedro Vidal

unread,
Jun 6, 2012, 4:43:43 PM6/6/12
to php-b...@googlegroups.com
Opa Wender, desculpe cara, não tinha tentado essa hipótese... vou tentar aqui e qualquer coisa já posto aqui o resultado!

Vlw!

Em 6 de junho de 2012 15:42, Wender Teixeira <rtz...@gmail.com> escreveu:
Pow kara olha no exemplo que fiz , se você não tiver o ID você pega pelo o Nome do perfil dele tipo

https://www.facebook.com/Wennder

Luciano Lima

unread,
Jun 6, 2012, 5:50:01 PM6/6/12
to php-brasil
Pedro, tenta a API JS
http://developers.facebook.com/docs/reference/javascript/

Você terá que ter o APP_ID, mas com o SDK na página, no FB.init() você
consegue identificar se tem algum usuário autenticado, independente de
qual seja
e depois disso, se ele estiver logado, você faz o que você precisa. Lá
nos dados públicos vai ter tanto o nome como o avatar.
Acho que é essa a sua solução, mas precisará de um app cadastrado.

On 6 jun, 17:43, Pedro Vidal <pedrorvi...@gmail.com> wrote:
> Opa Wender, desculpe cara, não tinha tentado essa hipótese... vou tentar
> aqui e qualquer coisa já posto aqui o resultado!
>
> Vlw!
>
> Em 6 de junho de 2012 15:42, Wender Teixeira <rtz...@gmail.com> escreveu:
>
>
>
>
>
>
>
> > Pow kara olha no exemplo que fiz , se você não tiver o ID você pega pelo o
> > Nome do perfil dele tipo
>
> >https://www.facebook.com/*Wennder*

Pedro Henrique

unread,
Jun 6, 2012, 2:36:30 PM6/6/12
to php-b...@googlegroups.com
Cara, que tipo de aplicação você quer executar, via cli, uma app facebook. Qual o seu ponto de partida para querer pegar o ID?

Pedro Vidal

unread,
Jun 6, 2012, 6:12:38 PM6/6/12
to php-b...@googlegroups.com
Pedro, eu não quero executar nenhuma aplicação, eu estou fazendo um BANNER, e quero botar dentro desse banner o nome e foto de perfil da pessoa que estiver navegando pelo site onde estará o banner. Se o cara estiver logado, vai notar que ali no meio do banner vai aparecer os dados dele, e tal.
Esse é o objetivo, pegar foto + nome pra botar dentro de um banner com html5. Lembrando que não existe a possibilidade de eu pedir a permissão do usuário ou conseguir a ID de cada usuário, ou usar a API do facebook.

Eduardo Kraus

unread,
Jun 7, 2012, 12:48:11 AM6/7/12
to php-b...@googlegroups.com
Fiz alguns testes aqui e só consegui acesso do ID após o usuário clicar em permitir....

Sem permitir só é possível identificar quem é o usuário se ele digitar seu login e senha. 

<script type="text/javascript">
window.fbAsyncInit = function() {
    FB.init({
        appId  : '266072346786600',
        status : true,
        cookie : true,
        xfbml  : true 
    });

    FB.api('/me', function(response) {
      alert('Seu nome é ' + response.name);
    });
    FB.login(function(response) {
        if (response.authResponse) {
            FB.api('/me', function(response) {
                alert('Você se logou como ' + response.name);
            });
        }
    });
};
(function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    ref.parentNode.insertBefore(js, ref);
}(document));
</script>

Sem clicar em permitir apareceu a seguinte mensagem "Seu nome é undefined" e ao clicar em permitir apareceu "Seu nome é Eduardo Kraus"....

Eduardo Kraus

unread,
Jun 7, 2012, 2:16:27 AM6/7/12
to php-b...@googlegroups.com

Carlos Franco

unread,
Jul 26, 2017, 3:43:51 PM7/26/17
to php-brasil
Boas, ainda tem esse script? para que possa ver como funciona.?

Luciano da Silva Martins

unread,
Jul 27, 2017, 6:50:05 AM7/27/17
to php-brasil
Entre em contato com o Eduardo direto pois essa thread aqui tem 5 anos já
Reply all
Reply to author
Forward
0 new messages