Guia do desenvolvedor: JavaScript

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

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

Além de fornecer informações sobre os recursos da API de dados do Blogger, este documento apresenta exemplos de interações básicas da API Data usando a biblioteca de cliente JavaScript. Se você quiser saber mais sobre o protocolo subjacente que a biblioteca usa, consulte a seção de protocolo deste guia do desenvolvedor.

Índice

Público-alvo

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 Data usando a biblioteca de cliente JavaScript.

Para informações de referência da API Blogger Data, consulte o Guia de referência de protocolos. Neste documento, presumimos que você entenda as ideias gerais por trás do protocolo das APIs de dados do Google, bem como o modelo de dados e o fluxo de controle usados pela biblioteca cliente de JavaScript. Ele 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 JavaScript.

Este documento foi criado para ser lido em ordem, e cada exemplo é baseado em exemplos anteriores.

Termos de Uso

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

Sobre os ambientes compatíveis

No momento, só há suporte para 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 JavaScript experiente, pode estar pensando: "E se a mesma política de origem?" A biblioteca de cliente JavaScript permite que o cliente envie solicitações da API Google Data de qualquer domínio, mantendo a conformidade com o modelo de segurança do navegador.

Primeiros passos

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

Criar uma conta do Blogger

Inscreva-se em uma conta do Blogger para fins de teste. O Blogger usa as Contas do Google. Portanto, se você já tem uma Conta do Google, está tudo pronto.

Como adquirir a biblioteca

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

Comece usando uma tag <script> na seção <head> do 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 linha a seguir no código de configuração do JavaScript, que precisa ser chamado na seção <head> do documento HTML (ou em um arquivo JavaScript que foi incluído usando 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 solicitado da biblioteca cliente JavaScript.Nosso esquema de numeração de versões é modelado após o uso da API do Google Maps. Veja 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 um número específico de revisão principal e secundária.

Depois de chamar google.load(), você precisará instruir o carregador a aguardar até que a página termine de carregar e chamar o código:

google.setOnLoadCallback(getMyBlogFeed);

Em que getMyBlogFeed() é uma função que vamos definir em uma seção mais adiante neste 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 privados.

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

Autenticação via proxy do AuthSub

A autenticação de proxy dSYM é 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 dSYM especiais que permitem ao cliente agir em nome de um usuário específico.

Veja 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 um valor de "scope" 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, onde o usuário pode inserir as credenciais para fazer login no serviço.
  3. Se o usuário fizer login com sucesso, o sistema dSYM 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 chama métodos da biblioteca de cliente que interagem com o Blogger, a biblioteca de cliente anexa 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. Ele pode ser qualquer imagem, até mesmo uma imagem transparente de um pixel, mas deve 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 posicionar a imagem fora da área de renderização. Por exemplo: style="position:absolute; top: -1000px;"

Este é o código do cliente-aplicativo que gerencia o login. Chamaremos a função setupMyService() de outro código posteriormente.

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: recomendamos que você forneça 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 esperar pela interação do usuário, a primeira coisa que o usuário verá na chegada à sua página será uma página de login do Google. Se o usuário decidir não fazer login, o Google não o redirecionará de volta à sua página. Portanto, do ponto de vista do usuário, ele tentou acessar a página, mas foi eliminado e nunca voltou. 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 de cliente reais.

Não é necessário fazer nada com a variável chamada token. A biblioteca de cliente acompanha o token, então você não precisa fazer isso.

Observação: quando você cria um novo objeto do 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 algum erro, a biblioteca de cliente exibirá uma mensagem de erro para o usuário. Se quiser lidar com esse tipo de erro por conta própria, chame explicitamente google.gdata.client.init(handleInitError) antes de criar o serviço, em que handleInitError() é a função. Se ocorrer um erro de inicialização, sua função receberá um objeto de erro padrão. É possível fazer o que quiser com esse objeto.

O token permanece válido até ser revogado ao chamar 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 é retido em todas as sessões do navegador. Assim, o usuário pode fechar o navegador e reabri-lo, voltar ao cliente e ainda fazer login.

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

Há outros dois métodos dSYM 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 depuração do uso.

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

Voltar ao início