MENU Mário Valney

Pegando as fotos de todos os usuários do Facebook!

API 02 de março de 2014 4 comentários
API
  • 02 - 03 - 14
  •        
  • 4

Galera!

Esses dias estava dando uma lida nas APIs do Facebook e resolvi brincar de criar um script para baixar as fotos dos usuários do Facebook… TODOS eles…

Maaaas… infelizmente não dá muito certo.

O código que salva as fotos dos usuários do Facebook 1 por 1, levaria cerca de 2,74 milênios para baixar todas as fotos de todos os usuários antes de chegar à minha foto (com o ID 100.001.287.580.019). E eu precisaria de 179,2 petabytes de espaço em disco!

facebook

Tá… tá… estou brincando.

Não levaria isso tudo, nem todo esse espaço de armazenamento pelo fato de que meu ID é 100.001.287.580.019 mas o Facebook não tem tudo isso de usuários. Fazendo a conta certa agora: digamos que somos 1,1 bilhão de usuários.

1.100.000.000 de usuários

E pegamos 50 fotos a cada 30 segundos. Teremos pouco mais de 1000 anos de código rodando para conseguir.
Mas se formos 1000 computadores levaríamos 1 ano. Se formos 365.000 computadores levaríamos 1 dia!

Não vou colocar o código que eu fiz pois acabei apagando (sim… sou burro), mas se você tiver o básico de conhecimento em PHP vai conseguir reproduzi-lo a partir do código abaixo:

// PRECISAMOS DE UM USUÁRIO INICIAL
$userID = 7620;

while ($userID <= 9999) {
    // URL PARA OS DADOS DA IMAGEM DO USUÁRIO
    $userURL = 'http://graph.facebook.com/10000043716'.$userID.'/picture?redirect=false'; 
    $userJSON = file_get_contents($userURL); 
    $jsonObj = json_decode($userJSON); 
    $userdata = $jsonObj->data;

        // SE NÃO FOR "SILHOUETTE", OU SEJA, SE TIVER IMAGEM
        if (!$userdata->is_silhouette) {
            $name = $jsonObj->name;
            $id = $jsonObj->id;
            $username = $jsonObj->username;


            echo '<a href="http://fb.com/'.$id.'" target="_blank"><img title="'.$name.'" alt="" src="'.$userdata->url.'" /></a>';
        }

    $userID ++;
}

Esse código está na seguinte página:    http://projetos.jangal.com.br/face/

(Só mudei um pouco para evitar consumir demais do servidor, ok?)

Atualização:

Esse código aparentemente parou de funcionar como antes. A culpa é das atualizações da API do Facebook…

Por favor, considere desativar o AdBlock

Não perca nenhuma novidade, assinando nossa newsletter!



    Não se preocupe: não enviaremos muitos e-mails, nem mostraremos seu e-mail para ninguém. Dúvidas?


    Deixe seu comentário! Dúvida sobre como comentar
    ou vai postar código? Leia antes.