Opa, como vai?


           Jota Júnior

           www.jotajunior.net

           jotavrj@gmail.com

           Exemplos de código desta palestra em:
           www.jotajunior.net/latinoware
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
E qual o nosso foco?




→ O Open Source da palestra é o PHP


→ Facebook e Twitter: principais para
projetos comerciais e com mais
usuários
PHP nas Mídias Sociais

 ●Objetivo:
  → Dar uma ideia do funcionamento de aplicativos
 de redes sociais e as ferramentas disponíveis para
 isso;

 ●Não é objetivo:
  → Torná-lo um mestre na programação nessa área
 ou apresentar todas as formas de trabalhar
Importância

               → Avaliada em mais de
               US$ 20 bilhões




              → Tendência e recurso interessante
Ou seja...
    $$$$$$$$$$$$$
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
E como o PHP trabalha?

   Redes oferecem interface, que permite uma
    comunicação padronizada entre a rede e os
    softwares que criamos; as APIs!

   Objetivos das APIs:
    → Fornecer informações do usuário;
    → Oferecer informações de autenticação;
    → Permitir que manipule a conta do usuário
E como o PHP trabalha?




     Você está criando um aplicativo social!
OAuth

   OAuth (Open Authentication) é uma forma da
    mídia social conceder acesso ao software
    sem ceder informações críticas do usuário
    (senha);

   Ao aceitar um aplicativo no Facebook, por
    exemplo, está fazendo uso do OAuth.

   App key, app secret, access token e
    permissões.
OAuth

    Vantagens:
   Lidar de forma padrão com a rede social;
   Não solicitar informações críticas do usuário
    (credibilidade).


    Desvantagem:
   Limita o software a utilizar as informações da
    forma que a rede social definir.
OAuth
Sempre há espaço para literatura



”Reduza ao máximo requisições às bibliotecas
das redes sociais”
                    - Caio F. Abreu
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Interação PHP ↔ Twitter

   Biblioteca theMattHarris (tmhOauth) muito
    satisfatória;

   REST Api bem documentada e parecida com a
    do Facebook;

   Documentação de fácil entendimento
    ( https://dev.twitter.com/docs/api )
Interação PHP ↔ Twitter

 Registrando o aplicativo:
Interação PHP ↔ Twitter

Forma de autenticação:




                           Código pronto
Interação PHP ↔ Twitter

 Como lidar com os recursos disponíveis
Interação PHP ↔ Twitter
 Mais recursos disponíveis...




            https://dev.twitter.com/docs/api/1.1
Interação PHP ↔ Twitter

 Exemplo consistente de implementação
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Interação PHP ↔ Facebook

   Forma de lidar muito facilitada e padrão;

   Extraordinariamente completa;

   Existe o PHP SDK, Javascript SDK e ainda dá
    para fazer tudo através de requests a URLs do
    REST
Interação PHP ↔ Facebook

    Registrando o aplicativo:
   Vá em https://developers.facebook.com/apps e
    clique em ”Create new app”.

   Define o nome, domínio (só aceitará requests
    de lá), descrição e etc;
Interação PHP ↔ Facebook

    Como lidar com os recursos disponíveis
   Utiliza a Graph Api ( graph.facebook.com )


   Pode criar links, utilizando o file_get_contents();
    Pode utilizar o PHP SDK, utilizando seus recursos
    próprios;
    Ou até requisições através de JS e plugins.


   Acessando graph.facebook.com/zuck , retornará
    informações em json sobre o perfil de Mark
    Zuckerberg.
Interação PHP ↔ Facebook
   Diferenças das formas de interação:
    → Por Links:
      → Monta links que são chamados através de
      file_get_contents (precisa da função habilitada)
      → Precisa ter o access token gravado em algum lugar
    → Pelo PHP SDK:
      → Por utilizar uma biblioteca, levemente
mais processamento
     → Solução mais padronizada
Interação PHP ↔ Facebook

   Qual a diferença?
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Interação PHP ↔ Facebook (link)

 Forma de autenticação (através de link)




                                 Eu, de novo :(
Interação PHP ↔ Facebook (link)

     Como lidar com os recursos disponíveis
<?php
$objeto_com_informacoes = json_decode( file_get_contents(“http://graph.facebook.com/zuck”) );
?>



E é simples assim mesmo. Você pode acessar qualquer informação
dessa forma: http://graph.facebook.com/OBJETO
Por exemplo, http://graph.facebook.com/coca-cola vai para a página da
Coca-Cola (e se adicionar /picture , como manda a lógica, retorna a
imagem oficial da página).
Interação PHP ↔ Facebook (link)

     Como lidar com os recursos disponíveis
    Alguns necessitam do access token:
<?php
$link = ”https://graph.facebook.com/me/likes?access_token=TOKEN”;
$objeto = json_decode( file_get_contents( $link ) );
?>
Interação PHP ↔ Facebook (link)

   Mais recursos disponíveis...
Abaixo listarei a lista de exemplos do próprio Facebook, que pode ser
encontrada (em inglês) em
http://developers.facebook.com/docs/reference/api/
→ Acessando:
Amigos: https://graph.facebook.com/me/friends?access_token=...
Mural: https://graph.facebook.com/me/feed?access_token=...


→ Publicando:
https://graph.facebook.com/ID/OBJETO?
access_token=TOKEN&method=post&PARAMS
Interação PHP ↔ Facebook (link)

 Exemplo consistente de implementação
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Interação PHP ↔ Facebook (SDK)
→ O Facebook disponibiliza SDKs oficias para facilitar o desenvolvimento nos
softwares/linguagens JavaScript, PHP, iOS e Android.
https://developers.facebook.com/docs/sdks/


→ O PHP SDK oferece uma forma padronizada e confiável de fazer requisições sem ficar
montando links
* Pegando informações do usuário

require_once('facebook.php');                         Chama o arquivo
$config = array(
   'appId' => 'YOUR_APP_ID',
   'secret' => 'YOUR_APP_SECRET',                  Define id/senha do seu app
 );

 $facebook = new Facebook($config);                  Instancia

 $user_profile = $facebook->api('/me','GET');                Faz requisição!


→ É necessário apenas o download de três arquivos de poucos kbytes!
http://developers.facebook.com/docs/reference/php/download/
Interação PHP ↔ Facebook (SDK)
   Utilização de métodos
    Exemplo: Message
    ( http://developers.facebook.com/docs/reference/api/message/ )
Interação PHP ↔ Facebook (SDK)
      Fazendo uma verificação completa:




Mais exemplos em http://developers.facebook.com/docs/reference/php/facebook-api/
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
Interação PHP ↔ Facebook (FQL)
   O Facebook disponibiliza o FQL ( Facebook Query
    Language )


   Requisições à API são feitas assim como SQL de Bancos
    de Dados! Omg!


   Os objetos (feed, likes, message, etc) são como tabelas


   Só suporta requisições GET (só existe o SELECT)


   Suporta operadores lógicos (OR, AND) e outros recursos
    como IN clause
Interação PHP ↔ Facebook (FQL)




                 Parte com FQL




                Lista de tabelas e queries em:
                http://developers.facebook.com/docs/reference/fql/
Tópicos
   Introdução
   Conceitos
   Twitter
   Exemplos de código para Twitter
   Introdução ao Facebook
   Interação com Facebook através de links
   Exemplos de código para FB e links
   Interação com Facebook através de SDK
   Interação com Facebook utilizando o FQL
   Exemplos de código para FB com SDK e FQL
DÚVIDAS
MUITO OBRIGADO!

    Palestra e códigos em
http://jotajunior.net/latinoware

PHP nas Mídias Sociais

  • 1.
    Opa, como vai? Jota Júnior www.jotajunior.net jotavrj@gmail.com Exemplos de código desta palestra em: www.jotajunior.net/latinoware
  • 2.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 3.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 4.
    E qual onosso foco? → O Open Source da palestra é o PHP → Facebook e Twitter: principais para projetos comerciais e com mais usuários
  • 5.
    PHP nas MídiasSociais ●Objetivo: → Dar uma ideia do funcionamento de aplicativos de redes sociais e as ferramentas disponíveis para isso; ●Não é objetivo: → Torná-lo um mestre na programação nessa área ou apresentar todas as formas de trabalhar
  • 6.
    Importância → Avaliada em mais de US$ 20 bilhões → Tendência e recurso interessante
  • 7.
    Ou seja... $$$$$$$$$$$$$
  • 8.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 9.
    E como oPHP trabalha?  Redes oferecem interface, que permite uma comunicação padronizada entre a rede e os softwares que criamos; as APIs!  Objetivos das APIs: → Fornecer informações do usuário; → Oferecer informações de autenticação; → Permitir que manipule a conta do usuário
  • 10.
    E como oPHP trabalha? Você está criando um aplicativo social!
  • 11.
    OAuth  OAuth (Open Authentication) é uma forma da mídia social conceder acesso ao software sem ceder informações críticas do usuário (senha);  Ao aceitar um aplicativo no Facebook, por exemplo, está fazendo uso do OAuth.  App key, app secret, access token e permissões.
  • 12.
    OAuth Vantagens:  Lidar de forma padrão com a rede social;  Não solicitar informações críticas do usuário (credibilidade). Desvantagem:  Limita o software a utilizar as informações da forma que a rede social definir.
  • 13.
  • 14.
    Sempre há espaçopara literatura ”Reduza ao máximo requisições às bibliotecas das redes sociais” - Caio F. Abreu
  • 15.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 16.
    Interação PHP ↔Twitter  Biblioteca theMattHarris (tmhOauth) muito satisfatória;  REST Api bem documentada e parecida com a do Facebook;  Documentação de fácil entendimento ( https://dev.twitter.com/docs/api )
  • 17.
    Interação PHP ↔Twitter Registrando o aplicativo:
  • 18.
    Interação PHP ↔Twitter Forma de autenticação: Código pronto
  • 19.
    Interação PHP ↔Twitter Como lidar com os recursos disponíveis
  • 20.
    Interação PHP ↔Twitter Mais recursos disponíveis... https://dev.twitter.com/docs/api/1.1
  • 21.
    Interação PHP ↔Twitter Exemplo consistente de implementação
  • 22.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 23.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 24.
    Interação PHP ↔Facebook  Forma de lidar muito facilitada e padrão;  Extraordinariamente completa;  Existe o PHP SDK, Javascript SDK e ainda dá para fazer tudo através de requests a URLs do REST
  • 25.
    Interação PHP ↔Facebook Registrando o aplicativo:  Vá em https://developers.facebook.com/apps e clique em ”Create new app”.  Define o nome, domínio (só aceitará requests de lá), descrição e etc;
  • 26.
    Interação PHP ↔Facebook Como lidar com os recursos disponíveis  Utiliza a Graph Api ( graph.facebook.com )  Pode criar links, utilizando o file_get_contents(); Pode utilizar o PHP SDK, utilizando seus recursos próprios; Ou até requisições através de JS e plugins.  Acessando graph.facebook.com/zuck , retornará informações em json sobre o perfil de Mark Zuckerberg.
  • 27.
    Interação PHP ↔Facebook  Diferenças das formas de interação: → Por Links: → Monta links que são chamados através de file_get_contents (precisa da função habilitada) → Precisa ter o access token gravado em algum lugar → Pelo PHP SDK: → Por utilizar uma biblioteca, levemente mais processamento → Solução mais padronizada
  • 28.
    Interação PHP ↔Facebook  Qual a diferença?
  • 29.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 30.
    Interação PHP ↔Facebook (link) Forma de autenticação (através de link) Eu, de novo :(
  • 31.
    Interação PHP ↔Facebook (link) Como lidar com os recursos disponíveis <?php $objeto_com_informacoes = json_decode( file_get_contents(“http://graph.facebook.com/zuck”) ); ?> E é simples assim mesmo. Você pode acessar qualquer informação dessa forma: http://graph.facebook.com/OBJETO Por exemplo, http://graph.facebook.com/coca-cola vai para a página da Coca-Cola (e se adicionar /picture , como manda a lógica, retorna a imagem oficial da página).
  • 32.
    Interação PHP ↔Facebook (link) Como lidar com os recursos disponíveis  Alguns necessitam do access token: <?php $link = ”https://graph.facebook.com/me/likes?access_token=TOKEN”; $objeto = json_decode( file_get_contents( $link ) ); ?>
  • 33.
    Interação PHP ↔Facebook (link) Mais recursos disponíveis... Abaixo listarei a lista de exemplos do próprio Facebook, que pode ser encontrada (em inglês) em http://developers.facebook.com/docs/reference/api/ → Acessando: Amigos: https://graph.facebook.com/me/friends?access_token=... Mural: https://graph.facebook.com/me/feed?access_token=... → Publicando: https://graph.facebook.com/ID/OBJETO? access_token=TOKEN&method=post&PARAMS
  • 34.
    Interação PHP ↔Facebook (link) Exemplo consistente de implementação
  • 35.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 36.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 37.
    Interação PHP ↔Facebook (SDK) → O Facebook disponibiliza SDKs oficias para facilitar o desenvolvimento nos softwares/linguagens JavaScript, PHP, iOS e Android. https://developers.facebook.com/docs/sdks/ → O PHP SDK oferece uma forma padronizada e confiável de fazer requisições sem ficar montando links * Pegando informações do usuário require_once('facebook.php'); Chama o arquivo $config = array( 'appId' => 'YOUR_APP_ID', 'secret' => 'YOUR_APP_SECRET', Define id/senha do seu app ); $facebook = new Facebook($config); Instancia $user_profile = $facebook->api('/me','GET'); Faz requisição! → É necessário apenas o download de três arquivos de poucos kbytes! http://developers.facebook.com/docs/reference/php/download/
  • 38.
    Interação PHP ↔Facebook (SDK)  Utilização de métodos Exemplo: Message ( http://developers.facebook.com/docs/reference/api/message/ )
  • 39.
    Interação PHP ↔Facebook (SDK)  Fazendo uma verificação completa: Mais exemplos em http://developers.facebook.com/docs/reference/php/facebook-api/
  • 40.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 41.
    Interação PHP ↔Facebook (FQL)  O Facebook disponibiliza o FQL ( Facebook Query Language )  Requisições à API são feitas assim como SQL de Bancos de Dados! Omg!  Os objetos (feed, likes, message, etc) são como tabelas  Só suporta requisições GET (só existe o SELECT)  Suporta operadores lógicos (OR, AND) e outros recursos como IN clause
  • 42.
    Interação PHP ↔Facebook (FQL) Parte com FQL Lista de tabelas e queries em: http://developers.facebook.com/docs/reference/fql/
  • 43.
    Tópicos  Introdução  Conceitos  Twitter  Exemplos de código para Twitter  Introdução ao Facebook  Interação com Facebook através de links  Exemplos de código para FB e links  Interação com Facebook através de SDK  Interação com Facebook utilizando o FQL  Exemplos de código para FB com SDK e FQL
  • 44.
  • 45.
    MUITO OBRIGADO! Palestra e códigos em http://jotajunior.net/latinoware