Criando aplicativos para Facebook usando SDK do PHP

Posted on junho 7, 2012. Filed under: Facebook, PHP | Tags:, , |

Introdução

Neste artigo vamos demonstrar como criar uma aplicação simples para o facebook usando a Graph API com o sdk do php. Vamos criar um Hello World de aplicação para facebook. Iremos presumir que a aplicação será hospedada em um servidor particular próprio.

Criando a App à partir do seu login

O primeiro passo é criar uma aplicação no site do facebook. Após criar a aplicação usando o seu perfil teremos o appId e o secret que iremos usar dentro do script php. Portanto, autentique o facebook com o seu usuário e acesse o link https://developers.facebook.com/apps.

Para inciar a criação da sua app, clique no botão + Criar Novo Aplicativo.

Informe o nome da sua aplicação no campo App Name e clique em continuar. Os outros campos, podem ficar em branco ou não selecionados. Deixe o campo Web Hosting não selecionado já que iremos hospedar nossa aplicação em um servidor próprio como comentanos no ínicio do artigo.

Na tela seguite, digite a verificação de segurança (Captcha) para continuar.

Caso esteja criando sua primeira aplicação dentro do seu perfil, o facebook irá solicitar um contato por telefone ou cartão de crédito para assegurar que você é realmente você. Use a opção por telefone informando o seu número de celular. O facebook irá enviar um SMS para o seu número com um código de verificação. Informe esse código de verificação na próximo passo requisitado pelo facebook. Pronto, agora você pode avançar na criação da sua aplicação.

Na tela seguinte você deverá informar os dados básicos para sua aplicação. Informe o domínio onde sua app estará hospedada no campo Site URL: da sessão Website with Facebook Login. Anote também o App ID e App Secret que usaremos dentro do nosso script php.

Criando o script PHP

Para desenvolver aplicações para o facebook em php, você precisa baixar o sdk para php. Isso pode ser feito no link abaixo: (baixar pacote zip)
https://github.com/facebook/php-sdk.

Descompacte o arquivo zip e copie a pasta src para o diretório raiz da sua aplicação. Neste momento, já estamos pronto para criar o script php.

O código abaixo é uma simples aplicação que realiza o login no facebook e imprime a foto e os dados do usuário logado. Ao acessar a página pela primeira vez, será solicitado a autenticação do facebook. Após autenticado, os dados e a foto serão exibidas.

<?php
// incluir a lib fo facebook
require 'src/facebook.php';

// Cria a instancia da aplicacao, informando o appid e o secret
$facebook = new Facebook(array(
  'appId'  => 'XXXXXXXXXXXXXXX',
  'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
));

// obtem o id do usuario
$user = $facebook->getUser();

if ($user) { // usuario logado
        try {
        // Obtem dados do usuario logado
        $user_profile = $facebook->api('/me');

        // exibe foto do usuario logado
        echo "<img src=\"https://graph.facebook.com/$user/picture\">";

        // printa os dados do profile do usuario logado
        print_r($user_profile);

        } catch (FacebookApiException $e) {
                error_log($e);
                $user = null;
        }
} else {
        // usuario nao logado, solicitar autenticacao
        $loginUrl = $facebook->getLoginUrl();
        echo "<a href=\"$loginUrl\">Facebook Login</a><br />";
        echo "<strong><em>Voc&ecirc; n&atilde;o esta conectado..</em></strong>";
}

Conclusão

A partir desse ponto você pode expandir sua aplicação facebook conforme deseja. Próximos artigos relacionados ao facebook virão. Boa sorte.

Avançando em seus aplicativos para facebook

Confira vários outros artigos sobre desenvolvimento para facebook no blog:
Artigos Facebook

Curso rápido e completo sobre desenvolvimento de aplicativos para facebook:
http://www.temporealeventos.com.br/?area=267-Criando-Aplicativos-para-Facebook-Usando-SDK-de-PHP-e-Javascript

Make a Comment

Deixe uma resposta para pasquati Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

31 Respostas to “Criando aplicativos para Facebook usando SDK do PHP”

RSS Feed for Pasqua Tecnologia Comments RSS Feed

Excelente, muito bom. Parabéns

Estou com o seguinte erro:
Invalid or no certificate authority found, using bundled information

Pelo que andei pesquisando, é um problema de comunicação que ocorre entre o sdk do php e o SSL.
Inclua a linha abaixo no seu script php: (Pode ser logo após o include da lib do facebook).

Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;

Maiores detalhes:
http://stackoverflow.com/questions/7374223/invalid-or-no-certificate-authority-found-using-bundled-information

Boa sorte!

Tenho um aplicativo, usando o exemplo acima mas tenho um problema agora. Ele só publica em Perfis do Facebook, preciso publicar em uma FanPage, alguem pode me ajudar?

Boa noite,
No artigo Manipulando fotos no facebook com sdk para php tem exemplo de publicação em fanpage.

Boa Sorte!

o link nao esta funfando de download do php

Boa tarde Felipe, poderia me informar qual o link exatamente que não esta funcionando ?

Amigo onde coloco este codigo ?

oi Adiel,

No caso deste artigo, você precisa de um servidor, com um domínio público (ex: http://www.seudominio.com.br), onde possa hospedar sua app em php!
Outra opção, que não foi abordada neste artigo, é hospedar gratuitamente no Heroku. A opção de hospedar no Heroku é feita durante a criação da sua app no facebook.
Para mais detalhes:

https://devcenter.heroku.com/articles/facebook

Em breve irei abordar como hospedar aplicações no Heroku!

Boa sorte!

Olá Adiel, Caso ainda tenha interesse, acaba de ser lançado um novo artigo sobre o assunto, conforme prometido:
Criando aplicativos para Facebook hospedando no Heroku

Abraços!

Amigo, fiz exatamente como vc mostrou mas o app nao esta reconhecendo o perfil. O que pode ser?

Olá Tiago,
Retorna alguma mensagem de erro do facebook ?

Como eu faço para recuperar os dados de usuários? Ex: Eu gostaria de criar um aplicativo para sorteios. O usuários faz o cadastro eu recupero os dados, salvo no banco de dados e imprimo na tela todos os usuários que estão participando daquela promoção. É possível fazer isso? Onde posso me informar a respeito.

Obrigado e parabéns pelo blog e pelas iniciativas.
Sucesso!

Olá Henrique,

Neste mesmo artigo, Criando aplicativos para Facebook usando SDK do PHP, você tem exemplo de um código que imprime as informações do usuário. Veja a linha 23 do exemplo.
Algumas informações adicionais, como o endereço de email, onde o usuário mora e o dia de nascimento precisam de uma permissão do usuário para que seu aplicativo possa acessar essas informações.

Para obter o email, vocÊ precisa solicitar a permissão email. Para obter a data de nascimento, você precisará da permissão user_birthday! Para o endereço, será preciso a permissão user_location. Mais detalhes sobre as permissões, acessar:
http://developers.facebook.com/docs/reference/login/extended-profile-properties/

Para saber como solicitar permissões, veja meu outro artigo:
Facebook App: Requisitando permissões pela API do PHP

Boa sorte!

Consegui criar o app, pegar as permissões necessárias, salvar no banco de dados e exibir os usuários que estão utilizando meu aplicativo. Porém, fiz tudo isso fora do facebook. ex: meudominio.com.br/meuappteste.php

Quando eu crio a aba no facebook, clico no link (dentro da aba) para ir ao aplicativo, acontece o seguinte erro:
Ocorreu um erro. Tente novamente mais tarde.

API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: A URL informada não é permitida pela configuração do aplicativo.

Sabe qual é o motivo deste erro e como corrigir?

kkk erros, tentativas, erros de novo, tentativas e acertos. O problema estava que no link eu chamava sem o www. e Site URL no app, eu coloquei com o www. Agora funcionou por lá também, mas ele redireciona para a página do app, não permanece dentro do iframe. Sabe como resolvo esse problema? parece ser simples, mas eu não sei como faço. :s

Olá Henrique,
Quando você clica no link da app dentro da fan page (via page tab), ele deve abrir a app dentro do iframe no facebook. Mas quando você acessa a aplicação diretamente pelo endereço, sem passar antes pelo facebook, a app irá abrir direto, sem o iframe! Esse é o processo normal… acontece algo diferente desse processo?

Boa sorte!

Ola, Fiz e deu certo. Só que as postagem esta sendo postada no meu face e não na pagina especifica que cadastrei . Criei uma pagina e gostaria que as postagem aparecesse nesta pagina, como faço?

Olá Wilson,

Para que a postagem seja realizada na página, você precisa informar o access token da página como um parâmetro da publicação. Veja o tutorial abaixo, na seção Publicando fotos em uma fanpage. Explica como obter o access token da página e como utilizá-lo na publicação. Veja que no caso o artigo trata sobre publicação de fotos. A publicação no feed de notícias segue o mesmo padrão de parâmetros.

Manipulando fotos no facebook com sdk para php

Boa sorte!

Muito bom cara, funcionou perfeitamente.
Só tenho uma dúvida, eu consigo listar os eventos do usuário tenho esta necessidade e não consegui.

Olá Adriano,

Referente aos eventos do usuário, você pode usar uma FQL:
SELECT eid, name, start_time FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid = me())

ou fazer uma requisição para /me/events:

$eventos = $facebook->api('/me/events');

Boa sorte!

Fatal error: Uncaught exception ‘Exception’ with message ‘Facebook needs the CURL PHP extension.’ in C:\AppServ\www\Teste\src\base_facebook.php:19 Stack trace: #0 C:\AppServ\www\Teste\src\facebook.php(18): require_once() #1 C:\AppServ\www\Teste\index.php(3): require_once(‘C:\AppServ\www\…’) #2 {main} thrown in C:\AppServ\www\Teste\src\base_facebook.php on line 19

ja habilitei o CURL no meu PHP.ini esto em Localhost

Olá Vinicius,

Realmente a exception indica que o extensão do CURL não esta habilitada. Identifique corretamente o local do arquivo php.ini, e descomente a linha:
extension=php_curl.dll

Reinicie o Apache e teste novamente. Se o erro persiste, ou é porque o apache não foi reiniciado ou porque você não esta editando o arquivo php.ini correto para o seu ambiente.
Outro motivo é você não ter o arquivo php_curl.dll dentro do diretório de extensões do seu ambiente php.

Boa sorte!

Caro Pasquati,

Quando coloco a URL: https://developers.facebook.com/apps sou direcionado para minha página https://www.facebook.com/rogarfil, e como sou iniciante no facebook, já busquei na ajuda este problema mas continuo sem noção. Agradeceria muito sua ajuda, Abraços,

Olá Rogerio,

Provavelmente você tem que registrar sua conta do facebook como conta de desenvolvedor. Ao invés do link que você mencionou, tente acessar o link abaixo:
http://developers.facebook.com/

(Procure o link “Register as a Developer”)

Boa sorte!

Prezado Pasquati,

Após ter enviado minha dúvida, descobri nesta url http://forum.imasters.com.br/topic/486563-criao-de-app-no-facebook-com-php/, o por que não estava conseguindo é que no meu caso trata-se de uma Fan Page e para resolver este meu problema tive que criar um perfil pessoal para acessar as Apps. O que de fato consegui.

Abraços,

Legal que funcionou Rogério!

Obrigado pelo feedback sobre sua solução.

Boa sorte!

Interessante buscava algo assim! i7sites

Ola, tentei a com o meu perfil eu consigo normalmente, mas ao tentar com um perfil diferente ele não mostra os dados

Olá Jeferson,

Provavelmente o outro usuário não é admin/dev do seu APP. Para que outros usuários possam enxergar o seu aplicativo, é necessário publicar o aplicativo. Para isso você deve enviar o App para review, onde o pessoal do Facebook irá liberar seu aplicativo para publicação após uma análise do mesmo. Mais detalhes, verificar a opção de “Status e Review” no menu das configurações do seu aplicativo. Será necessário informar uma série de detalhes sobre o app.

Boa sorte!

Muito obrigado, pela atenção e as dicas.


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: