Guia do desenvolvedor: JavaScript

A API de dados do Blogger permite que aplicativos clientes visualizem e atualizem o conteúdo do Blogger na forma de feeds da API de dados do Google.

Seu aplicativo cliente pode usar a API de dados do Blogger para criar novas postagens, editar ou excluir postagens existentes e consultar as postagens que correspondam a critérios específicos.

Além de fornecer algumas informações sobre os recursos da API de dados do Blogger, este documento mostra exemplos de interações básicas dessa API usando a biblioteca de cliente JavaScript. Se você quiser entender mais sobre o protocolo subjacente usado pela biblioteca, consulte a seção "Protocolo" deste Guia para desenvolvedores.

Conteúdo

Público

Este documento é destinado a programadores que querem criar aplicativos cliente JavaScript que possam interagir com o Blogger. Ele fornece uma série de exemplos de interações básicas da API de dados usando a biblioteca de cliente JavaScript.

Para informações de referência sobre a API Blogger Data, consulte o Guia de referência de protocolo. Para acompanhar este documento, você precisa conhecer as ideias gerais por trás do protocolo das APIs de dados do Google e do modelo de dados e fluxo de controle usados pela biblioteca de cliente JavaScript. Também pressupõe que você saiba programar em JavaScript.

Para informações de referência sobre as classes e os métodos fornecidos pela biblioteca de cliente, consulte a referência da API da biblioteca de cliente do JavaScript.

Este documento foi projetado para ser lido em ordem; cada exemplo se baseia em exemplos anteriores.

Termos de Uso

Você concorda em obedecer aos Termos de Uso da biblioteca de cliente JavaScript do Google ao usar a biblioteca de cliente JavaScript.

Sobre ambientes compatíveis

No momento, só oferecemos suporte a aplicativos cliente JavaScript executados em uma página da Web em um navegador. Os navegadores atualmente compatíveis são o Firefox 1.5 e superior e o Internet Explorer 6.0 e superior.

A biblioteca de cliente JavaScript processa toda a comunicação com o servidor do serviço. Se você é um desenvolvedor experiente de JS, talvez esteja pensando: "Mas e a mesma política de origem?" A biblioteca cliente JavaScript permite que seu cliente envie solicitações da API Google Data de qualquer domínio, mantendo-se compatível com o modelo de segurança do navegador.

Como começar

Antes de poder programar um aplicativo cliente JavaScript, é preciso fazer algumas configurações para adquirir a biblioteca.

Como criar uma conta do Blogger

Recomendamos que você se inscreva em uma conta do Blogger para fins de teste. O Blogger usa Contas do Google. Portanto, se você já tem uma, não precisa fazer mais nada.

Adquirir a biblioteca

Antes que seu cliente possa usar a biblioteca de cliente, ele precisa solicitar o código da biblioteca ao servidor.

Comece usando uma tag <script> na seção <head> do seu documento HTML para buscar o carregador da API AJAX do Google:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

Para acessar a biblioteca de cliente da API Google Data depois de buscar o carregador, use a seguinte linha no código de configuração JavaScript, que precisa ser chamada na seção <head> do documento HTML ou em um arquivo JavaScript incluído com uma tag <script> na seção <head> do documento HTML:

google.load("gdata", "1.x");

O segundo parâmetro para google.load() é o número da versão solicitada da biblioteca de cliente JavaScript.Nosso esquema de numeração de versões é semelhante ao usado pela API Google Maps. Aqui estão os possíveis números de versão e o que eles significam:

"1"
A penúltima revisão da versão principal 1.
"1.x"
A revisão mais recente da versão principal 1.
"1.s"
A revisão estável mais recente da versão principal 1. Ocasionalmente, declararemos uma determinada versão da biblioteca-cliente "estável,", com base nos comentários que recebemos dos desenvolvedores. No entanto, é possível que essa versão não tenha os recursos mais recentes.
"1.0", "1.1" etc.
Uma versão específica da biblioteca, com números de revisão principal e secundária especificados.

Depois de chamar google.load(), você precisa solicitar que o carregador aguarde até que a página termine de carregar e, em seguida, chame seu código:

google.setOnLoadCallback(getMyBlogFeed);

Em que getMyBlogFeed() é uma função que definiremos em uma seção posterior deste documento. Use essa abordagem em vez de ter um gerenciador onload anexado ao elemento <body>.

Como autenticar no serviço do Blogger

Você pode acessar feeds públicos e privados usando a API de dados do Blogger. Os feeds públicos não exigem autenticação, mas são somente leitura. Se você quiser modificar blogs, seu cliente precisará se autenticar antes de solicitar feeds particulares.

A biblioteca cliente JavaScript usa o sistema de autenticação vezes. Para mais informações sobre autenticação com as APIs de dados do Google em geral, consulte a documentação de autenticação.

Autenticação via proxy do AuthSub

A autenticação por proxy BYOL é usada por aplicativos da Web que precisam autenticar os usuários nas Contas do Google. O operador do site e o código do cliente não têm acesso ao nome de usuário e à senha do usuário do Blogger. Em vez disso, o cliente recebe tokens MRAID especiais que permitem que ele atue em nome de um usuário específico.

Esta é uma breve visão geral do que acontece durante o processo de autenticação de um cliente JavaScript baseado na Web:

  1. O aplicativo cliente chama o método google.accounts.user.login() fornecido pela biblioteca de cliente, passando a ele um valor de "escopo", que indica qual serviço do Google usar. Para o Blogger, o escopo é "http://www.blogger.com/feeds/".
  2. A biblioteca de cliente envia o navegador para a página "Solicitação de acesso" do Google, em que o usuário pode inserir as credenciais para fazer login no serviço.
  3. Se o usuário fizer login corretamente, o sistema StatefulSet enviará o navegador de volta ao URL do cliente da Web, passando o token de autenticação.
  4. A biblioteca de cliente JavaScript armazena o token em um cookie e retorna o controle para a função do aplicativo cliente que chamou google.accounts.user.login().
  5. Quando o aplicativo cliente posteriormente chamar os métodos da biblioteca cliente que interagem com o Blogger, a biblioteca de cliente anexará automaticamente o token a todas as solicitações.

Observação: para que a biblioteca de cliente JavaScript faça solicitações autenticadas do Blogger em um navegador da Web, sua página precisa conter uma imagem hospedada no mesmo domínio da página. Pode ser qualquer imagem, até mesmo uma imagem transparente de um único pixel, mas precisa haver uma imagem na página. Se você quiser que a imagem não apareça na sua página, use o atributo style da tag <img> para posicioná-la fora da área de renderização. Por exemplo: style="position:absolute; top: -1000px;"

Este é o código do aplicativo cliente que processa o login. Vamos chamar a função setupMyService() de outro código mais tarde.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

Dica: é altamente recomendável fornecer um botão de login ou outro mecanismo de entrada do usuário para solicitar que o usuário inicie o processo de login manualmente. Se, em vez disso, você chamar google.accounts.user.login() imediatamente após o carregamento, sem aguardar a interação do usuário, a primeira coisa que ele verá na sua página será uma página de login do Google. Se o usuário decidir não fazer login, o Google não vai direcioná-lo de volta à sua página. Portanto, do ponto de vista do usuário, ele tentou acessar sua página, mas foi direcionado e nunca mais retorna. Esse cenário pode ser confuso e frustrante para os usuários. No código de exemplo deste documento, chamaremos google.accounts.user.login() imediatamente após o carregamento para simplificar o exemplo, mas não recomendamos essa abordagem para aplicativos clientes reais.

Observe que você não precisa fazer nada com a variável chamada token. A biblioteca de cliente monitora o token para que você não precise fazer isso.

Observação: quando você cria um novo objeto BloggerService, a biblioteca de cliente chama um método chamado google.gdata.client.init(), que verifica se o navegador em que o cliente está sendo executado é compatível. Se houver um erro, a biblioteca de cliente exibirá uma mensagem de erro ao usuário. Se você quiser lidar com esse tipo de erro por conta própria, chame google.gdata.client.init(handleInitError) explicitamente antes de criar o serviço, em que handleInitError() é sua função. Se ocorrer um erro init, sua função receberá um objeto Error padrão. Você pode fazer o que quiser com esse objeto.

O token permanece válido até ser revogado chamando google.accounts.user.logout():

function logMeOut() {
  google.accounts.user.logout();
}

Se você não chamar logout(), o cookie que armazena o token terá duração de dois anos, a menos que o usuário o exclua. O cookie é mantido em todas as sessões do navegador. Portanto, o usuário pode fechar o navegador, reabri-lo e voltar ao seu cliente.

No entanto, existem determinadas circunstâncias incomuns em que um token pode se tornar inválido durante uma sessão. Se o Blogger rejeitar um token, seu cliente deverá lidar com a condição de erro chamando logout() para remover o cookie que contém o token atual e, em seguida, chamando login() novamente para adquirir um novo token válido.

Há dois outros métodos de ConstraintLayout que podem ser úteis em vários contextos:

  • google.accounts.user.checkLogin(scope) informa se o navegador tem ou não um token de autenticação para o escopo especificado.
  • google.accounts.user.getInfo() fornece informações detalhadas sobre o token atual, para uso em depuração.

Para mais detalhes sobre como usar o JavaScript para interagir com BYOL, incluindo informações sobre o gerenciamento de tokens e sobre checkLogin() e getInfo(), consulte o documento Como usar a autenticação "Android" com a biblioteca de cliente JavaScript.

Voltar ao início