Conhecendo API do Facebook

42.101 visualizações

Publicada em

Slides explicando como funciona a Api do Facebook!

Publicada em: Tecnologia
2 comentários
53 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
42.101
No SlideShare
0
A partir de incorporações
0
Número de incorporações
70
Ações
Compartilhamentos
0
Downloads
0
Comentários
2
Gostaram
53
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conhecendo API do Facebook

  1. 1. Conhecendo a API do Facebook
  2. 2. INTRODUÇÃO• O objetivo dessa apresentação é abordar as diversas opções disponíveis na API do facebook.• API rica e bastante consistente que permite interações com diversas plataformas e a criação de aplicativos diversos.• O Facebook disponibiliza o SDK em PHP, JS, IOS e Android.
  3. 3. SDK PHP(utilizando a API do Facebook com PHP)
  4. 4. O que é?• SDK php fornece ricas configurações e funcionalidades no server-side para acessar funcionalidades do Facebook através de chamadas da API.• Simplifica o processo de autenticação do usuário e o acesso do mesmo ao seu aplicativo.• O SDK do PHP pode trabalhar em conjunto com o SDK JavaScript para fornecer gerenciamento de sessão entre cliente e app.
  5. 5. SDK PHP -> Instalando e Inicializando1º Passo:• Necessário registrar a sua aplicação em https://developers.facebook.com/apps/OBS: O registro da aplicação fornecerá um APP ID e uma APP SECRET necessárias para iniciar o SDK.2º Passo:• Fazer o download do SDK PHP no endereço https://github.com/facebook/php-sdk
  6. 6. SDK PHP -> Instalando e Inicializando3º Passo:• Incluir o arquivo facebook.php na sua aplicação.4º Passo:• Usar o SDK instanciando um novo objeto "new Facebook" com , no mínimo, a APP ID e APP SECRET.
  7. 7. Implementando...require include/libs/facebook/src/facebook.php;/*AppId e AppSecret*/$appId = 299089040140399;$appsecret = e42c3ee37ca90111904674d46a987e91;/*Url do app no facebook */$canvas_page = http://apps.facebook.com/estatisticas-virtual/;/*Permissões separadas por virgula*/$perms =“publish_stream,publish_actions, user_online_presence, user_photos, offline_access, read_friendlists, read_stream, manage_friendlists,user_likes,friends_likes,user_videos”;OBS: Lista de permissões disponíveis em http://developers.facebook.com/docs/reference/api/permissions//*Cria uma instância com o AppId e AppSecret*/$facebook = new Facebook(array( appId => $appId, secret => $appsecret, cookie => true));
  8. 8. Implementando.../*Url de redirecionamento*//*Declaro as variáveis que serão utilizadas no processo de autenticação!A variável $auth_url será utilizada mais na frente*/$auth_url = "http://www.facebook.com/dialog/oauth?client_id=" . $appId . "&redirect_uri=" . urlencode($canvas_page) . "&scope=" . $perms;/* Recupera os dados passados pelo facebook*/$signed_request = $_REQUEST["signed_request"];/*Guarda alguns dados da variável anterior em outras variáveis*/list($encoded_sig, $payload) = explode(., $signed_request, 2);/* Decodifica o json com os dados do usuário*/$dadosPermissao = json_decode(base64_decode(strtr($payload, -_, +/)), true);/* Checo se o usuário deu permissãoSe não , redireciona para a tela que pede as permissõesSe sim, redireciona pra onde você quer/*if (empty($dadosPermissao["user_id"])){ echo("<script>top.location.href=" . $auth_url . ";</script>");}else{?>//entra html do app<?php}?>OBS: Alguns conceitos serão explicados nos slides mais a frente.Utilize esse código para se basear e entender o processo.Avancee retorne para cá sempre que necessário!
  9. 9. Facebook ObjectapiChamar um método API Gráfico, Consulta FQL, ou (obsoleto) API REST usando o SDK PHP.getAccessTokenObter o token de acesso atual que está sendo usado pelo SDK.getApiSecretObter a AppSecret que está sendo usado pelo SDK.getAppIdObter o AppId que está sendo usando pelo SDKgetLoginStatusUrlReturna um URL com base no status de login do usuário no facebook.getLoginUrlObter uma URL que o usuário pode clicar para logar, autorizar o app e ser redirecionado de volta para o aplicativo.getLogoutUrlEste método retorna uma URL que, quando clicado pelo usuário, irá desconectá-lo da sua sessão do Facebook e, em seguida, redirecioná-lo de volta para sua aplicação.getSignedRequestObter o pedido atual assinado que está sendo usado pelo SDK.getUserEsse método retorna o ID de usuário do Facebook do usuário atual, ou 0 se não há usuário logado.setAccessTokenDefina o token de acesso atual que está sendo usado pelo SDK.setApiSecretDefinir o segredo App que o SDK está usando atualmente.setAppIdDefina o ID App que o SDK está usando atualmente.setFileUploadSupportDefinir o suporte a arquivos de upload no SDK.useFileUploadSupportObter se o apoio de upload de arquivo tenha sido habilitado no SDK.
  10. 10. FacebookApiExceptiongetResult• Obter o objeto que é o resultado do erro ou exceção retornada pelo servidor.getType• Obter o tipo de erro ou exceção, por exemplo, OAuthException .
  11. 11. Autenticação e Autorização• O SDK do PHP pode ser usado para dar suporte ao registro e login para o seu site usando a conta dos usuários do Facebook.• No lado do servidor, o SDK do PHP fornece métodos auxiliares para simplesmente fazer o login, solicitar permissões e logout.• Essa funcionalidade é fornecida pelo Facebook :: getUser () , Facebook :: getLoginUrl () e Facebook :: getLogoutUrl ()
  12. 12. Signed_request• O parâmetro signed_request é utilizado para compartilhar informações entre o Facebook e o aplicativo em diferentes situações:• A signed_request é passado para Apps em Facebook.com quando eles são carregados no ambiente Facebook.• A signed_request é passada para qualquer aplicativo que tenha registrado uma chamada de retorno desautorizado na App Desenvolvedor sempre que um determinado usuário remove o aplicativo usando o Painel App.• A signed_request é passado para aplicativos que usam o Plugin de registro sempre que um usuário se registra com sucesso a sua app.
  13. 13. Signed_request• O parâmetro signed_request é a concatenação de uma cadeia de assinatura HMAC SHA-256 , um ponto ( . ) e um base64url codificado objeto JSON.vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0O JSON codificado contém os seguintes campos:user , algorithm , issued_at, user_id , oauth_token, expires , app_data , page , profile_idOBS:Mais informações em http://developers.facebook.com/docs/authentication/signed_request/
  14. 14. Entendendo alguns conceitos...Canvas page:• Canvas é literalmente uma tela em branco dentro do Facebook onde o aplicativo é carregado.• Nesse espaço você carrega o seu aplicativo, que pode ser um código html, javascript, css, etc.• Quando um usuário solicita a página Canvas, a URL é carregada dentro de um iframe na página. Isso resulta em sua aplicação que está sendo exibido dentro do padrão Facebook.• Os arquivos da sua aplicação deverão estar hospedados em outro servidor.Ao registrar o aplicativo, a URL canvas deve ser o endereço de onde estão hospedados os seus arquivos.• O facebook irá fornecer um Canvas Page que é o endereço da sua aplicação no Facebook!
  15. 15. O Facebook e suas conexões: Utilizando a GRAPH API• O Facebook vem trocando sua antiga API, chamada REST, baseada em requisições HTTP com resposta em XML, pela Graph API, onde todos os elementos básicos da rede social são representados em páginas diferentes e cada elemento possui sub- elementos criando grafos, que deram origem ao nome da API.• https://graph.facebook.com/me: Retorna os dados do usuário atual• https://graph.facebook.com/me/picture: Retorna a imagem de exibição do usuário atual• https://graph.facebook.com/me/friends: Retorna todos os amigos do usuário atual• Todas as requisições feitas retornam um objeto em formato JSON!
  16. 16. $facebook->api();• O SDK php disponibiliza o método Api para acesso ao banco de dados do facebook!Esse método chama a Graph Api do facebook, uma FQL ou a REST API (deprecated) .• Para chamar a Graph Api, o primeiro parâmetro a ser passado é o caminho.Para fazer um consulta FQL ou a REST API, o parâmetro passado deve ser um array. $facebook->api($path, $method, $params); $path = O caminho para o pedido.Para acessar as informações do usuário logado, por exemplo, usa-se "/me" $method (opcional)= Método HTTP requisitado.Pode ser GET, POST ou DELETE. $params = Parâmetros específicos para o método que se está chamando.Passado no formato de um array associativo. $user_profile = $facebook->api(/me,GET); echo "Name: " . $user_profile[name];
  17. 17. FQL QUERIES• O objeto FQL permite a execução de consultas FQL usando a GRAPH API.O Facebook Query Language, ou FQL, permite que você use uma interface SQL para consultar os dados expostos pelo Graph API . Ele fornece algumas funcionalidades avançadas não disponíveis na GRAPH API, incluindo consultas em lotes em uma única chamada.• A documentação de todas as tabelas do facebook estão no endereço http://developers.facebook.com/docs/reference/fql/• Ao contrário da SQL, o FQL disponibiliza as funções now () , strlen () , substr () e strpos () .
  18. 18. FQL - Multi Consultas• "query1":"SELECT uid, rsvp_status FROM event_member WHERE eid=12345678“• "query2":"SELECT name, url, pic FROM profile WHERE id IN (SELECT uid FROM #query1)"
  19. 19. GRAPH API com PHP SDK• Existem alguns parâmetros disponíveis para filtrar as consultas:limit, offset - https://graph.facebook.com/me/likes?limit=3until, since - https://graph.facebook.com/search?until=yesterday&q=orange
  20. 20. Datas• Os campos de datas são retornados no formato ISO- 8601.É possível modificar o formato passando o date_format como parâmetro.As opções disponíveis são iguais à função date() do php.
  21. 21. Graph Api - Introspecção• A Graph API suporta introspecção de objetos, permitindo que todas as conexões do objeto sejam acessadas.• O recurso a introspecção é uma forma útil e extensível para encontrar todas as coisas que os usuários estão conectados.• O Parâmetro a ser passado é o metadata = 1
  22. 22. GRAPH API - Busca• É possível acessar todos os objetos da GRAPH API.• O formato é: https://graph.facebook.com/search?q=QUERY&type=OBJ ECT_TYPE
  23. 23. Graph Api Explorer• O facebook disponibiliza o aplicativo GRAPH API FACEBOOK.• Ele permite que consultas sejam realizadas, retornando o JSON respectivo.

×