corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

SaaS: Facebook

O NetBeans IDE oferece um Gerenciador de serviços Web que dá suporte a aplicativos Software as a Service (SaaS). SaaS refere-se a um modelo de entrega de aplicativo de software onde um fornecedor de software desenvolve um aplicativo de software nativo da Web, hospeda e opera o aplicativo para uso por seus clientes via Internet. SaaS é um modelo cada vez mais popular para oferecer funcionalidade de software, já que é econômico em termos de custo e recursos de hardware do cliente. O IDE agora torna mais fácil para desenvolvedores Java acessar todos os serviços SaaS populares na Web.

A Plataforma Facebook é um serviço Web baseado em padrões com métodos para acessar e contribuir com dados do Facebook. A Plataforma Facebook é documentada no Facebook Developers Wiki.

O Facebook protege a comunicação do serviço Web com o mecanismo Logon do usuário. O desenvolvedor do aplicativo precisa registrá-lo no Facebook para obter uma chave de API e uma chave secreta. Cada chamada de método ao Facebook precisa ser assinada com a chave secreta. Durante o processo de logon, o aplicativo primeiro chama o Facebook para solicitar um token por meio da chave de API. Em seguida, o usuário é redirecionado para uma URL de logon construída a partir da chave de API e do token. Essa URL leva o usuário para uma página de logon no Facebook. Depois que o usuário fizer logon no Facebook e autorizar o aplicativo a chamar o Facebook em seu nome, o aplicativo enviará de volta uma chave de sessão e uma chave secreta de sessão. A partir daí, todas as chamadas de API devem passar a chave de sessão e serem assinadas por meio da chave secreta de sessão.

Neste tutorial, você usa a operação friends_get simples inserida em um arquivo JSP para retornar uma lista dos IDs numéricos de todos os amigos do Facebook do usuário. O tutorial tem como objetivo mostrá-lo como configurar a complicada autenticação de Logon do usuário do Facebook. Por analogia, isso deve ajudá-lo com outros serviços de Logon do usuário, tal como Flickr's.

Conteúdo

O conteúdo desta página se aplica ao IDE NetBeans 6.5

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE Pacote de download Web e Java EE 6.1, incluindo o patch mais recente
Pacote de download Java 6.5
Java Development Kit (JDK) versão 6 ou
versão 5
Servidor da aplicação ou Web compatível com Java EE Servidor Web Tomcat 6.0 e/ou servidor da aplicação GlassFish v2
Importante: Se você usa Tomcat com este tutorial, consulte
o NetBeans Wiki sobre Tomcat com REST

Criando o projeto

O IDE permite que você insira operações SaaS em servlets, serviços RESTful existentes, páginas JSP ou POJOs (plain Java objects). Neste tutorial, você cria um projeto de aplicação Web e adiciona o serviço na página JSP padrão do projeto.

Para criar o projeto:

  1. Escolha Arquivo > Novo projeto. Em Categorias, selecione Java Web. Em Projetos, selecione Aplicação Web e clique em Próximo.
  2. No campo Nome do projeto, digite FacebookSaas.
  3. Selecione o servidor GlassFish ou Tomcat e Java EE 5. Clique nas opções restantes e clique em Terminar. A página index.jsp do projeto se abre no IDE.
  4. Clique com o botão direito do mouse no nó do projeto FacebookSaas e selecione Propriedades na janela de contexto. A caixa de diálogo Propriedades do projeto é aberta.
  5. Abra a categoria Executar e desmarque Implantar ao salvar. Clique em OK.
    Propriedades do projeto com Implantar ao salvar desmarcada
  6. Na janela Serviços , expanda o nó Serviços Web. Expanda o nó e os subnós do Facebook até encontrar a operação friends_get.
    Janela Serviços com os serviços Web do Facebook expandidos, mostrando a operação friends_get
  7. Clique com o botão esquerdo do mouse na operação friends_get. Mantenha pressionado o botão esquerdo do mouse e arraste a operação para o corpo do index.jsp. A caixa de diálogo Personalizar SaaS GET é aberta, na qual você pode definir os valores de parâmetro iniciais. Aceite os valores padrão e clique em OK. O insere a operação friends_get no corpo do index.jsp, que agora tem a seguinte aparência:
    <body>
      <h1>JSP Page</h1>
      
      <%@ page import="org.netbeans.saas.*, org.netbeans.saas.facebook.*" %>
      <%
          try {
            String format = null;
            String flid = null;
         
            RestResponse result = FacebookSocialNetworkingService.friendsGet(request, response, format, flid);
            facebook.socialnetworkingservice.facebookresponse.FriendsGetResponse resultObj = result.getDataAsObject(facebook.socialnetworkingservice.facebookresponse.FriendsGetResponse.class);
    //TODO - Uncomment the print Statement below to print result.
    //out.println("The SaasService returned: "+result.getDataAsString());
    } catch (Exception ex) {
    ex.printStackTrace();
    } %> </body>

    Se o compilador não reconhecer a classe FriendsGetResponse, você precisa instalar os patches mais recentes no NetBeans IDE. Este patch inclui o suporte para JAXB FriendsGetResponse.

    Você pode usar o objeto JAXB FriendsGetResponse para acessar o documento XML subjacente. Adicione uma linha vazia depois da linha facebook.socialnetworkingservice... e digite resultObj.. Aparece uma janela pop-up com todos os métodos que estendemresultObj e que você pode usar para acessar o XML subjacente.
    Auto-completar de código do método resultObject

    O IDE também adiciona classes e o arquivo de propriedade da chave de segurança nos pacotes org.netbeans.saas e org.netbeans.saas.facebook. A estrutura completa do projeto é mostrada na janela Projetos.

    Janela Projetos mostrando a estrutura completa do projeto

    Por último, o IDE insere a seção seguinte no web.xml, que está na pasta Web Pages/WEB-INF:

    <servlet>
        <servlet-name>FacebookSocialNetworkingServiceLogin</servlet-name>
        <servlet-class>org.netbeans.saas.facebook.FacebookSocialNetworkingServiceLogin</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>FacebookSocialNetworkingServiceCallback</servlet-name>
        <servlet-class>org.netbeans.saas.facebook.FacebookSocialNetworkingServiceCallback</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>FacebookSocialNetworkingServiceLogin</servlet-name>
        <url-pattern>/FacebookSocialNetworkingServiceLogin</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>FacebookSocialNetworkingServiceCallback</servlet-name>
        <url-pattern>/FacebookSocialNetworkingServiceCallback</url-pattern>
    </servlet-mapping>

Registrando o projeto

Registre o aplicativo com o Facebook para obter uma chave de API e uma chave secreta. Você precisa de uma conta do Facebook. Quando você obtiver as chaves, copie-as do seu navegador e cole-as em org.netbeans.saas.facebook.facebooksocialnetworkingserviceauthenticator.properties.

Para registrar seu projeto:

  1. Abra uma janela do navegador e faça logon no Facebook.
  2. Vá para http://www.facebook.com/developers/. A página Desenvolvedor é aberta.
  3. Clique em + Configurar novo aplicativo. A página Novo aplicativo se abre.
  4. No campo Nome do aplicativo, digite FacebookSaas. O nome do aplicativo sempre deve corresponder ao nome do projeto de aplicação Web.
  5. Expanda os Campos opcionais.
  6. Digite os endereços de email de suporte do usuário e do desenvolvedor.
  7. Em URL de retorno de chamada, digite http://localhost:8080/FacebookSaas/FacebookSocialNetworkingServiceCallback. Essa URL é derivada do número da porta em que o GlassFish está sendo executado, o nome do projeto e o nome da classe que está passando o resultado. (Se você estiver usando um servidor em uma porta diferente da 8080, digite o número dessa porta.) Você pode ver o nome dessa classe no arquivo index.jsp, na linha RestResponse result = FacebookSocialNetworkingService.friendsGet(request, response, format, flid); as URLs de todos os serviços autenticados por logon do usuário são construídas dessa forma.
    Página Novo aplicativo no site de desenvolvedor do Facebook mostrando os campos de nome, email e URL de retorno de chamada preenchidos
  8. Deixe todo os outros campos com seus valores padrão. Clique em Enviar. O navegador é atualizado com a home page do aplicativo FacebookSaas. A API recém-gerada e as chaves secretas são exibidas.
  9. No IDE, vá para a janela Projetos e abra facebooksocialnetworkingserviceauthenticator.properties, em org.netbeans.saas.facebook. Copie a chave da API e a chave secreta do navegador para esse arquivo. Salve o arquivo.
    Janela Projetos mostrando o arquivo de propriedades do autenticador do serviço de rede social facebook

Executando o projeto

Depois de recuperar a API e as chaves secretas do Facebook, você pode executar seu projeto.

Para executar o projeto:

  1. Abra index.jsp e retire o comentário da instrução print out.println("The SaasService returned: "+result.getDataAsString());. Você também pode fazer algumas alterações cosméticas: altere o título e o cabeçalho h1 de "JSP Page" para "Facebook Get Friends Service," altere o texto no bloco de teste de "The SaasService returned:" para "Your friendlist IDs are:", ou quaisquer outras alterações desejadas.
  2. Clique com o botão direito do mouse no nó do projeto na janela Projetos. Selecione Executar no menu de contexto. O IDE constrói seu projeto e o implanta no servidor da aplicação.
  3. Uma janela do navegador se abre, na qual você é solicitado a fazer logon no Facebook. Clique em Fazer logon no Facebook e uma página de logon aparece para o projeto do FacebookSaas. Faça logon com suas credenciais do Facebook.
  4. Talvez apareça um aviso de que a página da Web está tentando acessar sua intranet. Permita que a página da Web acesse sua intranet.
  5. Uma lista de ids numéricos de sua lista de amigos é retornada no navegador.

Mais exercícios

Aqui estão mais algumas idéias para você explorar:

  • Recrie index.jsp para apresentar os dados de uma forma visualmente mais atraente do que uma lista de números.
  • Adicione operações adicionais do Facebook no projeto. Crie index.jsp para exibir uma tabela de informações sobre os amigos do usuário, por exemplo.
  • Tente acessar as operações do Facebook a partir de um aplicativo de área de trabalho Java em vez de uma aplicação Web. Para fins de teste, você pode soltar a operação do Facebook no método main de uma classe main. Você também poderia criar uma GUI e soltar a operação nessa classe. Quando registra seu aplicativo no Facebook, você precisa especificar que ele é um aplicativo de área de trabalho e não é necessário especificar o retorno de chamada.  Além disso, quando você executar o aplicativo, aparecerá uma caixa de diálogo com uma URL e o usuário precisará copiar e colar a URL em um navegador para fazer logon no Facebook.


Veja também

Para obter mais informações sobre o uso do NetBeans IDE para desenvolver serviços Web RESTful, SaaS e outros aplicativos Java EE, consulte os seguintes recursos:

Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos dos recursos de desenvolvimento de Java EE do NetBeans IDE, inscreva-se na lista de endereçamento de .