Aplicativos para Facebook, dúvidas frequentes

Introdução

Reuni neste tutorial diversas questões no estilo pergunta -> resposta. São dúvidas frequentes sobre desenvolvimento de aplicativos para Facebook usando PHP e Javascript. A grande parte destas questões foram originadas pelos próprios leitores do Blog e também dos alunos que participaram do treinamento Criando Aplicativos para Facebook, Usando SDK de PHP e Javascript

As perguntas foram colhidas desde o período que comecei a escrever sobre o tema de desenvolvimento de aplicativos para Facebook.

Informações Gerais

  1. Somente meu perfil consegue visualizar as atividades geradas pelo meu aplicativo. Por que?
  2. Provavelmente o seu aplicativo esta no modo SandBox, ou seja, somente o usuários do facebook que estão como desenvolvedores do aplicativo poderão visualizá-lo. Para que outros usuários possam utilizar o aplicativo é necessário desabilitar essa opção. Para mais detalhes sobre como proceder, acessar o artigo: Dicas para testar aplicativos para facebook durante o desenvolvimento

  3. Como hospedar meu aplicativo na própria infraestrutura do facebook.com?
  4. O próprio facebook não tem uma opção de hospedagem de aplicativos internamente. Todos aplicativos são hospedados fora, em servidores independentes. Para lançar seu aplicativo você terá que ter um plano de hospedagem próprio.
    O Facebook permite a integração do seu aplicativo dentro do seu domínio através de canvas ou page tab. Qualquer uma dessas integrações é feita através de iframe. É possível rodar o seu aplicativo também de forma independente, ou seja, sem nenhuma das duas integrações citadas anteriormente. Sempre que houver necessidade do seu aplicativo se comunicar com o facebook, o usuário será direcionado para o facebook e depois redirecionado de volta para o seu aplicativo.

    Dica: Você também pode ler o artigo, Facebook, Configurando App como Page Tab, para aprender como inserir o seu aplicativo dentro de uma Fan Page.

  5. Alguns portais, como wodpress.com; instagram; etc, realizam publicações no meu mural de forma automática, sem que eu precise interagir no momento da publicação. Como funciona esse mecanismo?
  6. Essa publicação é conhecida como publicação offline ou publicação através de access token. A partir do ponto que o usuário concedeu a permissão de publicação (publish_stream) para um aplicativo, é possível programar o aplicativo para guardar a identificação do usuário e posteriormente realizar publicações no feed de notícias deste usuário, através deste mesmo aplicativo. Para maiores detalhes de como proceder, acessar o artigo Facebook sdk, publicação offline no mural do usuário com access token.

  7. É possível armazenar o usuário/senha da conta para posteriormente realizar publicações offline?
  8. Não, pelo menos através de aplicativos pelo Graph API. Quando o aplicativo precisa conectar com o usuário, este será redirecionado para o componente de Login do Facebook. Após a conclusão do Login e de ter concedido as permissões, o usuário será redirecionado de volta para o seu aplicativo (no seu servidor). Em nenhum momento, você terá em mãos o login e senha do facebook do usuário que esta usando o aplicativo. Tudo isso exatamente por questões de segurança. Caso queira realizar operações offline em nome do usuário ou do aplicativo, você precisará utilizar access token. Mais informações de como trabalhar com access token no facebook:
    Facebook sdk, publicação offline no mural do usuário com access token
    Facebook sdk, Publicando fotos na Fan Page com access token
    https://developers.facebook.com/docs/facebook-login/access-tokens/

  9. Como revogar as permissões de um aplicativo no qual já aceitei as permissões ?
  10. Durante o desenvolvimento do do seu aplicativo, é bem provável que esteja usando o seu próprio perfil do facebook para testar. Em algum momento será necessário revogar as permissões já concedidas para o aplicativo afim de dar continuidade em novos testes. Para revogar as permissões e excluir quaisquer vestígios do aplicativo, a partir da sua conta, entre na página Configurações de Aplicativos (Ícone Ferramentas -> Configurações da Conta -> Aplicativos). Identifique o seu aplicativo na lista e remova através do link “x” que esta no final da linha. Para continuar os testes, aconselho a fazer um logoff do facebook, fechar o navegador e prosseguir. Isso irá limpar qualquer vestígio do aplicativo e da sessão do navegador referente a ele.

  11. Não encontro mais a opção de hospedagem no Heroku durante a criação do meu aplicativo. Por que?
  12. Até determinado período o facebook tinha como parceiro oficial o Heroku para hospedagem de aplicativos, por isso existia um botão que já automatizava o processo de criação do aplicativo dentro da hospedagem do Heroku. Acredito que com algumas das últimas mudanças, tanto no Heroku quanto no Facebook, essa opção foi removida. O usuário pode hospedar o seu aplicativo em qualquer lugar que achar mais pertinente para si. O Heroku continua sendo uma opção de hospedagem, porém não esta mais sendo “sugerido” pelo facebook durante a criação do aplicativo.

  13. Quais os recursos que tenho para testar o meu aplicativo ?
  14. O facebook disponibiliza vários recursos e ferramentas para desenvolvedores. Para uma gama completa de possibilidades, acesse a página oficial de Tools para desenvolvedores.
    No artigo Facebook sdk, Trabalhando com Facebook Query Language (FQL) você tem uma ideia sobre como usar o Graph API Explorer. Outras dicas podem ser encontradas também no artigo Dicas para testar aplicativos para facebook durante o desenvolvimento, como por exemplo a criação de usuários somente para realizar testes.

Usando API

  1. Copiei que colei o código que achei no seu blog no meu editor de textos. Onde eu faço o download do tal de php-sdk-master? Coloquei no diretório certo? Onde coloco esse código ?
  2. É necessário pelo menos um conhecimento básico em programação, linguagem PHP e HTML para poder dar andamento em seus próprios aplicativos para facebook. Aconselho você à procurar um curso online de programação básica e de programação em PHP. Sem esse conhecimento dificilmente irá conseguir avançar.

  3. É possível efetuar várias publicações/solicitações em uma única chamada pela api do facebook?
  4. Sim, dependendo da finalidade do seu aplicativo, é necessário realizar múltiplas solicitações de uma única vez. Ao invés de ter que disparar várias requisições para o facebook para cada publicação ou solicitação, você pode agrupar todas elas em um única requisição. Esse procedimento é chamado Requisições em Batch. O limite de solicitações em batch atualmente é 50.

  5. Estou procurando uma forma de postar fotos em minha fan page, no entanto gostaria de colocar um aplicativo onde fosse obrigatório a pessoa curtir a fan page antes de visualizar as fotos. Alguma sugestão?
  6. É possível identificar todas as fan pages que o usuário curtiu, através da permissão user_likes, e inserir no seu aplicativo um mecanismo para verificar essa operação. A verificação pode ser feita tanto no javascript quanto no PHP. Lembre-se que a validação no lado do PHP é a mais importante por questões de segurança. Mais detalhes, pode acessar o artigo Facebook, Verificando se usuário curtiu fan page !

  7. Gostaria de poder publicar no mural dos amigos através de um aplicativo. É possível ? Realizei alguns testes e não consegui.
  8. O Facebook desabilitou a opção do aplicativo poder publicar no mural (feed de notícias) dos amigos do usuário. (No caso, o usuário que esta usando o aplicativo). Foi desabilitado em Fev/2013. O motivo, de acordo com o facebook, é que estava gerando muita insatisfação dos usuários e muitos bloqueios de apps por causa deste motivo. A alternativa é utilizar o Feed Dialog.

  9. Como eu faço para pegar as publicações do usuário que tem o app instalado e fazer com que mostre as publicações do perfil em meu blog ?
  10. Primeiramente será necessário solicitar a permissão read_stream. Para requisitar as publicações, fazer uma requisição GET em /ID_USUARIO/feed

  11. Tenho um aplicativo que publica em Perfis do Facebook, preciso publicar em uma FanPage, alguém pode me ajudar?
  12. Em algumas pequenas mudanças você pode fazer o aplicativo publicar no feed de notícias da Fan Page. Veja um exemplo de código de publicação em fan page em https://gist.github.com/dpasqua/6221072.
    Neste outro artigo você tem exemplo de publicação de fotos na fan page também: Manipulando fotos no facebook com sdk para php

  13. Como tenho acesso aos eventos do usuário através de um app?
  14. Será necessário solicitar a permissão user_events e usar a FQL abaixo para acessar todos os eventos do usuário (até aqueles que ele não tem certeza que irá participar):

    select eid, uid, rsvp_status from event_member where uid = me()
  15. Como faço para pegar o ID do Usuário do Facebook, através da API?
  16. Simples:

    // obtem usuario logado
    $user = $facebook->getUser();
    echo $user; // imprime o ID do usuário do facebook
    
  17. Como faço para publicar uma imagem no perfil do usuario através de um aplicativo?
  18. Consulte o artigo: Manipulando fotos no facebook com sdk para php

  19. Teria como, através de uma aplicação em php, onde eu envie uma Mensagem a uma(s) pessoa(s)? Aquela Mensagem privada?
  20. Automaticamente, através da API do facebook, não é possível enviar mensagens para o Inbox de usuários. Como alternativa, você pode usar o Send Dialog. (Os Dialogs necessitam de uma interação com o usuário do seu aplicativo, ou seja, você não conseguirá fazer um app que envie mensagens automaticamente)

Erros durante a Execução

  1. Quando eu abro o meu aplicativo através de uma aba de Página (Page Tab) ele simplesmente abre uma tela em branco. O que pode estar acontecendo?
  2. Provavelmente o layout usado nas páginas do seu aplicativo ultrapassou o limite de tamanho da configuração do PagTab (810px ou 520px). Caso também esteja solicitando permissões ou login através do sdk para PHP, é bem provável que estes componentes também ultrapassem este limite. Neste caso, aconselho a utilizar o SDK de Javascript para corrigir essa questão. Mais detalhes em:
    Facebook App: Trabalhando com Login através do sdk para javascript

  3. 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.

  4. Esse erro acontece normalmente quando você esta acessando o aplicativo através de um domínio diferente do que foi configurado nos parâmetros do seu aplicativo em http://developers.facebook.com/apps. Verificar o parâmetro Site URL:, na seção Website with Facebook Login.

  5. Fatal error: Uncaught exception ‘Exception’ with message ‘Facebook needs the CURL PHP extension. Como solucionar esse erro?
  6. É necessário habilitar a extensão CURL no PHP do seu ambiente de desenvolvimento. No Windows, identifique a seguinte linha no php.ini e remova o comentário: ;extension=php_curl.dll. No Linux, em distribuições baseadas em Debian, instale via apt-get:

    # apt-get install php5-curl
Please follow and like us:

Comments

  1. By Paulo Cesar

    • mm By Douglas V. Pasqua

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: