corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Consumindo serviços Web do Google em aplicações Web

As APIs AdSense do Google, expostas como serviços Web, são direcionadas a usuários que desejam participar do programa AdSense do Google. O programa AdSense do Google é um esquema de compartilhamento de receita onde o usuário permite que o Google coloque widgets no site dele. Esses widgets podem vir no formato de anúncios, dependendo do conteúdo do site do usuário, ou (como no exemplo usado neste tutorial), o widget de pesquisa do Google. Em todos os casos, o Google compartilha suas receitas com o usuário relativas aos acessos que esses widgets atraem.

Adicionar esses widgets requer algum esforço de programação, tal como neste exemplo, em que você tipicamente deveria saber sobre serviços Web. Entretanto, este tutorial descreve como você pode usar o NetBeans IDE para adicionar um widget de pesquisa do Google ao seu site com um nível muito mínimo de conhecimento e codificação de sua parte.

Observação: Neste tutorial, estaremos interagindo com a área de segurança do desenvolvedor do Google. Suas regras tendem a mudar de tempos em tempos. Se você encontrar erros de tempo de execução ou se os valores especificados neste tutorial não funcionarem para você, aconselhamos a leitura do texto do erro mostrado no navegador e a verificação cuidadosa do código em busca de erros de digitação nos valores indicados. Em seguida, se tudo estiver correto, então possivelmente os valores da área de segurança do desenvolvedor do Google foram alterados. Consulte http://code.google.com/apis/adsense/ para ajustar os valores, se necessário.

Conteúdo

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

Software necessário para o tutorial

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

Software ou recurso Versão necessária
NetBeans IDE Web e Java EE, versão 6
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
Ambos incluídos na distribuição Web e Java EE do NetBeans IDE

O ID atual do serviço AdSense do Google

Obtenha-o no formato ca-pub-xxxxxx no suporte do Google.

Criando um projeto da Web

Primeiro, você precisa criar um projeto da Web. Nesse caso, usaremos uma das amostras incluídas no assistente para Novo projeto como nosso ponto de partida.

  1. Escolha Arquivo > Novo projeto. Em Categorias, selecione Amostras e, em seguida, Serviços Web RESTful. Em Projetos, selecione Banco de dados do cliente, como mostrado abaixo:

    Assistente para Novo projeto mostrando o projeto de amostra Banco de dados do cliente escolhido

  2. Clique em Próximo e clique em Terminar.

O projeto de amostra se abre no IDE, com seu esboço de projeto na janela Projetos.

Adicionando o serviço Web do Google

Arrastando e soltando um item da paleta de componentes, você pode permitir ao IDE gerar todo o código necessário para a comunicação com o serviço Web do Google. Depois de fazer isso, você pode se referir à APIs relacionadas do Google, como mostrado abaixo, para personalizar o código. Finalmente, o IDE ajuda-o a testar o aplicativo, fornecendo um cliente Web que chama todas as operações disponíveis no serviço Web.

Para adicionar o serviço Web:

  1. Abra a classe CustomerResource no pacote customerdb.service.
  2. Adicione o método seguinte à classe:
    @Path("adSenseForSearch")
    @GET
    @ProduceMime("text/html")
    
    public String getAdSenseForSearchCode() {
    // dnd here and return the generated html code.
    
        return null;
    
    }
  3. Abra a aba Serviços no IDE. Expanda o nó Serviços Web. Você vê uma lista de todos os serviços Web. Localize o nó Google e expanda-o. Na lista de serviços do Google, localize o Serviço AdSenseForSearch e expanda-o, revelando a operação GoogleAdSenseForSearch.

    Serviços do Google no gerenciador de serviços Web

  4. Arraste a operação generateSearchBoxCode e solte-a no corpo do método getAdSenseForSearch.


    Quando você solta o item, aparece um certificado (a menos que você já confie em sandbox.google.com). Aceite o certificado. O personalizador seguinte aparece (a imagem mostra o personalizador depois que ele é preenchido):

    Caixa de diálogo de personalizador generateSearchBoxCode

  5. Preencha o personalizador com as seguintes informações:
    • country. US
    • searchType. GoogleSiteSearch
    • selectedDomain. wiki.netbeans.org
  6. Clique em OK. Uma barra de progresso aparece enquanto o IDE adiciona o serviço Web ao projeto. O corpo completo do método getAdSenseForSearch é o seguinte:
    @Path("adSenseForSearch")
        @GET
        @ProduceMime("text/html")
        public String getAdSenseForSearchCode() {
    // dnd here and return the generated html code.
            try {
            java.lang.String synServiceId = "";
            java.lang.String country = "US";
            java.lang.String searchType = "GoogleSiteSearch";
            com.google.api.adsense.v2.SiteProperties siteProperties = null;
            com.google.api.adsense.v2.SearchOptions searchOptions = null;
            java.util.List domains = null;
            java.lang.String selectedDomain = "wiki.netbeans.org";
            com.google.api.adsense.v2.SearchBoxStyle searchBoxStyle = null;
            java.lang.String channelName = "";
            com.google.api.adsense.v2.AdSenseForSearchServiceService service = new com.google.api.adsense.v2.AdSenseForSearchServiceService();
            com.google.api.adsense.v2.AdSenseForSearchService port = service.getAdSenseForSearchService();
            // TODO process result here
            java.lang.String result = port.generateSearchBoxCode(synServiceId, country, searchType, siteProperties, searchOptions, domains, selectedDomain, searchBoxStyle, channelName);
            return result;
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    
        return null;
    
    }
  7. Personalize ligeiramente o código do corpo do método getAdSenseForSearch, para as seguintes variáveis locais:
    synServiceId = "partner-pub-6309917007979926";
    // the digits in synServiceId must be the same as the digits in the AdSense Service ID
    

    Copie a parte numérica do ID do serviço AdSense do Google que você obteve no início (consulte Software necessário para este tutorial). Use esse número como a parte numérica de synServiceId.

Adicionando o código ao aplicativo

Esta seção o orienta na implementação do código da API do Google e mostra-lhe aonde ir para obter mais informações. Todo código é implementado na classe AdSenseForSearchResource.

  1. Adicione o seguinte método setHeaderParameters em qualquer lugar em CustomerResource. Use o valor partner-pub-xxxxx que você obteve antes de começar o tutorial (consulte Software necessário para este tutorial). Corrija as importações depois de colar o código.
    private void setHeaderParameters(AdSenseForSearchService port) {
           WSBindingProvider bp = (WSBindingProvider) port;
           bp.setOutboundHeaders(
               com.sun.xml.ws.api.message.Headers.create(new QName("http://www.google.com/api/adsense/v2", "client_id"), "partner-pub-6309917007979926"),
               com.sun.xml.ws.api.message.Headers.create(new QName("http://www.google.com/api/adsense/v2", "developer_password"), "Q6R3l6a483"),
               com.sun.xml.ws.api.message.Headers.create(new QName("http://www.google.com/api/adsense/v2", "developer_email"), "adsensedeveloper1@google.com")
           );
    }
          
  2. Adicione o corpo do método getAdSenseForSearch seguinte, abaixo de // TODO process result here:
    domains = java.util.Arrays.asList(new String[]{selectedDomain});
    // Set the search options
    searchOptions = new SearchOptions();
    
    // Set the site properties
    siteProperties = new com.google.api.adsense.v2.SiteProperties();
    siteProperties.setLocale("en");
    siteProperties.setEncoding("");
    
    // Set the style
    searchBoxStyle = new com.google.api.adsense.v2.SearchBoxStyle();
    searchBoxStyle.setLogoType("GoogleLogo");
    searchBoxStyle.setBackgroundColor("#CCCCCC");
    searchBoxStyle.setTextColor("black");
    searchBoxStyle.setTextBoxLength(40);
          searchBoxStyle.setSearchStyleName("Blue Sky");
  3. Adicione também esta linha ao corpo do método getAdSenseForSearchCode:
    setHeaderParameters(port);
  4. Leia AdSenseForSearch#generateSearchBox para obter detalhes sobre a personalização que você adiciona às opções de pesquisa.

Testando a aplicação

Para testar o aplicativo, faça o seguinte:

  1. Na janela Projetos, clique com o botão direito do mouse no projeto e escolha Testar serviços Web RESTful. O servidor se inicia e o navegador se abre, exibindo o cliente Web RESTful, que você pode usar para testar a interação com o serviço Web RESTful.
  2. Agora, selecione o link '/customers' e clique em Testar. Em seguida, selecione um link de cliente (tal como '/customers/1/') e clique novamente em Testar. Finalmente, selecione o link '/customers/1/adSenseForSearch/' e garanta a seleção do tipo MIME 'text/html', como mostrado abaixo, e clique novamente em Testar.

    Na aba Visualização bruta, você agora deve ver a caixa Pesquisa do Google.

    Cliente de teste REST mostrando a caixa Pesquisa do Google

  3. Indique algumas palavras na caixa de pesquisa e cliente em Pesquisar. O navegador se abre, com os resultados da sua pesquisa, desde que o seu aplicativo esteja funcionando corretamente.
  4. Clique no link acima da linha Testar entrada. O link é semelhante a http://localhost:8080/CustomerDB/resources/customers/1/adSenseForSearch/. O link leva você para fora do modo de teste e para uma nova janela do navegador da própria aplicação Web.


Veja também

Para obter mais informações sobre o uso do NetBeans IDE 6.0 para desenvolver aplicações 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 .

Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems