PHP: Integrando o Facebook ao seu site – parte 2 – Atualizando o status do usuário


Essa segunda parte da série "Integrando o Facebook ao seu site" começou complicada já na escolha do título, não conseguia decidir qual complemento usar: "Atualizando o Mural do Usuário" ou "Postando no Mural do Usuário". Em inglês parece muito mais simples, muito mais!

É necessário que você tenha lido a primeira parte do artigo, caso não tenha feito ainda, corre lá.

Agora que cheguei a uma decisão, já desabafei, você já deve ter lido o primeiro artigo, já está com todos os arquivos em mãos, vamos parar de papo e vamos para o que interessa.

Permissões

Depois de levar muita bola nas costas, o Facebook aprendeu sobre privacidade (e a falta dela). Existe uma extensa lista de tipos de permissão que sua aplicação pode solicitar ao usuário, disponível na documentação da api, mas para o nosso exemplo, vamos precisar especificamente da permissão publish_stream, que libera a aplicação para atualizar o status do usuário a qualquer momento, assim como criar comentários e curtir conteúdos.

 

Code is Beautiful

Quem não concorda com isso, está no lugar errado!

Uma vez que já temos a permissão escolhida, vamos montar o código necessário para pedir a autorização e postar algum conteúdo no mural do usuário. Estou considerando que você já fez o download da SDK do Facebook no GitHub (lembre-se do primeiro artigo, jovem Padawan):

    require 'php-sdk/src/facebook.php';

    $facebook = new Facebook(array(
        'appId'  => '125178627581346',
        'secret' => '9fcc6b62c0f23c337d8ecb9aec27d155'
    ));    

    $user = $facebook->getUser();

    if ($user) {
        $post =  array(
            'message' => 'I may be paranoid... but not an android...'
        );
        $facebook->api('/me/feed', 'POST', $post);
    } else {
        $loginURL = $facebook->getLoginUrl(array(
            'scope' => 'publish_stream'
        ));
        echo "«a href="\"".$loginURL."\""»";
    }

Lembrem-se, isso é só um exemplo (extremamente tosco simples). Explicando:

  • Linha 1: Requisita a biblioteca do facebook;
  • Linha 3 a 6: Instancia a biblioteca, passando os tokens da aplicação ParanoidAndroid (aqui você substitui pela sua aplicação);
  • Linha 8: Recupera o usuário;
  • Linha 11 a 13: Caso o usuário tenha liberado o acesso da aplicação, monta a mensagem que vai ser postada no mural do usuário;
  • Linha 14: Efetua a postagem;
  • Linha 16 a 18: Caso o usuário não tenha liberado ainda o acesso da aplicação, monta a URL para solicitar permissão, informando o tipo de permissão necessária;
  • Linha 19: Imprime a URL para se logar pelo Facebook.

Neste exemplo, (lembrando novamente, simples), postamos uma mensagem no mural do usuário, mas você pode postar qualquer coisa (desde que seja possivel via a própria aplicação do facebook). Dê uma olhada na lista completa do que você pode postar aqui.

Com isso temos, basicamente, um sistema que permite que sua aplicação, poste algo no mural do usuário, mediante a permissão do usuário.

Caso queira ver a "aplicação" funcionando, dê uma olhada no meu site. Para fazer o download dos fontes, clique aqui

That's all folks, aguardem, mais artigos estão por vir :)

Links úteis



Leia também:

  1. PHP: Integrando o Facebook ao seu site – parte 1 – Acessando o perfil público
  2. PHP: Integrando o Twitter ao seu Site – Autenticação de Usuários
  3. PHP: Integrando o Twitter ao seu Site – Extra (Mais comandos da API)
  4. PHP: Integrando o Twitter ao seu Site – Parte 3 (Agora com OAuth)
  5. PHP: Integrando o Twitter ao seu Site – Parte 2

Categoria: Sem categoria
Tags: , ,

37 respostas a PHP: Integrando o Facebook ao seu site – parte 2 – Atualizando o status do usuário

  1. tem um erro na linha 19

    echo “Logar no facebook“;

    se tirar esse %5c não acontece nada ao clicar no botao de login, se deixar como está aparece o erro: unexpected T_STRING, expecting ‘,’ or ‘;’

    tentei concatenar, não deu certo.
    e tb tentei deixar assim:
    echo ‘login‘;
    não funcionou. E agora, o que faço?

  2. Henrique,

    Você sabe como postar no mural usando parâmetro de privacidade? Por exemplo: postar só para eu mesma ver.

  3. Alguem sabe como eu mando uma mesma postagem para várias pessoas? eu consegui mandar para uma pessoa especifica trocando o ‘me’ pelo id dela… mas eu queria mandar para varias ao mesmo tempo…

  4. Cara,

    como eu faço pra depois de aceitar as permissões de usuário, o usuário ser redirecionado para uma outra página do meu site?

  5. Henrique, vlw mesmo pela resposta, n era isso que eu queria mas eu tava precisando disso tb =D.
    Meu problema é, eu quero mandar um post para uma pessoa, mencionando outras pessoas. Pq eu quero que as outras pessoas comentem nesse mesmo post e vire uma grande thread de comentarios, sakou?

    n sei se expliquei direito. Se vc tiver gtalk me add pra gente conversar sobre isso.. tou iniciando agora no desenvolvimento pro facebook: flavioribeirom@gmail.com

    Vlw pela ajuda. :c

  6. Primeiramente parabens pelas postagens do blog, alto nível, mê ajudou muito a fazer integração com twitter e facebook.

    Gostaria de saber se é possível postar a imagens e conteúdo html no status do usuário.

    No aguardo

    Obrigado

  7. Fala Henrique ,blz ?! Parabéns pelos seus POSTs cara tem me ajudado bastante ! Cara , fiz o que seu tuto ,mas aparece uma página em branco para min, sabe por que ? Eu criei o APP certinho , até fiz a Open Graph

  8. Esse codigo so funciona se estiver em um servidor online, não funciona em localhost?
    Vi que diferente do exemplo do twitter, neste aki não é definido uma callback_url!

  9. olá Henrique…
    tem como pegar o email do usuário?…
    se tiver tem como vc dar essa dica tentei de todo geito mas não consigo já dei permissão e tudo qual seria o nome do post do email?
    vlw abrass

  10. cara tentei aqui mas apareceu uma mensagem de erro:
    “Fatal error: Uncaught exception ‘Exception’ with message ‘Facebook needs the CURL PHP extension.’ in F:\www\webiblia\m-leitura\php-sdk\src\base_facebook.php:19 Stack trace: #0 F:\www\webiblia\m-leitura\php-sdk\src\facebook.php(18): require_once() #1 F:\www\webiblia\m-leitura\index.php(2): require(‘F:\www\webiblia…’) #2 {main} thrown in F:\www\webiblia\m-leitura\php-sdk\src\base_facebook.php on line 19″

  11. Apos ir para a pagina de permissão e eu aceitar, quando volta pra pagina no meu site aparece uma msg de erro, testei no seu próprio que vc colocou no seu site e deu o mesmo erro.

  12. Cara, vi que você é gente boa! Então é o seguinte, estou precisando de um script desse mais que crie um album novo e poste uma imagem nele, igual aqueles apps de “Veja sua morte” Meu emprego”…. teria como me ajudar?

  13. Cara, em primeiro lugar parabéns pelo script. Mas aqui não tá funcionando…

    Quando clico no logar no facebook dá esse erro:

    Erro
    Ocorreu um erro em Novos Eventos. 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.

    Eu tenho que habilitar algum coisa ou algo do tipo!?

    Abraços,

  14. Ah cara, valeu a resposta….Arrumei aqui. Tinha que preencher no App on Facebook os endereços de Canvas URL

    ;)

    Valeu cara, agora vou fuçar aqui e tentar enquadrar…Mas show de bola seu post hein parabéns…Depois cria uma forma de receber suas postagens por email certo?!

    Pois eu não achei…Você tem?

    Flw.

  15. Boa noite Henrique,

    Você sabe mê informar se houve alguma mudança de publish_stream ou obter e-mail do usuário na API recentemente? Digo isso porque os novos aplicativos que criei não permitem de maneira alguma obter e-mail do usuário e nem publicar no seu mural. Abre a tela pedindo permissão ao usuário mas não mostra publish_stream e email. Estranho que meus aplicativos antigos continuam funcionando mas os novos não permitem de forma alguma.

    Desde já agradeço pela atenção.

    Att;

    Davidson Ferreira

  16. Ola, tenho uma rede social, as postagens de minha pagina já estão integradas ao facebook, gostaria de saber se é possivel uma aplicação para que as postagens do facebook apareçam na minha pagina.
    grato

  17. Olá Henrique,

    Estou desenvolvendo um aplicativo no Facebook, o mesmo será distribuido e instalado na fan page dos usuários, dai vem minha dúvida e dificuldade:

    Vou utilizar um único banco de dados para todas as distribuições instaladas nas fan page, identificando pelo id do usuário no facebook, mas como saber em qual fan page o aplicativo foi instalado para mostrar apenas conteúdo daquela fan page?

    Na prática preciso saber o nome da fan page do aplicativo acessado mas não sei se tem um método na api que permita saber isso. Grato pela atenção.

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>