Introdução à programação para redes sociais com PHP
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 o nosso foco?
→ O Open Source da palestra é o PHP
→ Facebook e Twitter: principais para
projetos comerciais e com mais
usuários
5. 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
6. Importância
→ Avaliada em mais de
US$ 20 bilhões
→ Tendência e recurso interessante
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 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
10. E como o PHP 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.
14. Sempre há espaço para 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 )
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
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/
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