A API Data do Blogger permite que os aplicativos clientes acessem e atualizem o conteúdo do Blogger na forma de feeds da API Data do Google.
O aplicativo cliente pode usar a API Blogger Data para criar novas postagens do blog, editar ou excluir postagens existentes e consultar postagens que correspondem a critérios específicos.
Além de fornecer alguns antecedentes sobre os recursos da API Data 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 usado pela biblioteca, consulte a seção de protocolo deste guia para desenvolvedores.
Conteúdo
Público-alvo
Este documento é destinado a programadores que querem criar aplicativos clientes JavaScript que possam interagir com o Blogger. Ele oferece 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 Data do Blogger, consulte o guia de referência do protocolo. Este documento pressupõe que você entenda as ideias gerais por trás do protocolo das APIs Data do Google e o modelo de dados e o fluxo de controle usados pela biblioteca de cliente JavaScript. Também pressupomos 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. 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 os ambientes com suporte
No momento, só oferecemos suporte a aplicativos clientes JavaScript executados em uma página da Web em um navegador. No momento, os navegadores compatíveis são o Firefox 1.5 e versões mais recentes e o Internet Explorer 6.0 e versões mais recentes.
A biblioteca de cliente JavaScript lida com toda a comunicação com o servidor do serviço. Se você é um desenvolvedor de JS experiente, pode estar pensando: "Mas e a política de mesma origem?" A biblioteca de cliente JavaScript permite que o cliente envie solicitações da API Data do Google de qualquer domínio, mantendo a conformidade com o modelo de segurança do navegador.
Primeiros passos
Antes de escrever um aplicativo cliente JavaScript, você precisa fazer algumas configurações para adquirir a biblioteca.
Como criar uma conta do Blogger
Talvez seja melhor criar uma conta do Blogger para fins de teste. O Blogger usa Contas do Google. Se você já tem uma, 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 adquirir a biblioteca de cliente da API Data do Google depois de buscar o loader, use
a seguinte linha no código de configuração do JavaScript, que precisa ser chamada da
seção <head>
do documento HTML (ou de um arquivo JavaScript
incluído usando uma tag <script>
na
seção <head>
do documento HTML):
google.load("gdata", "1.x");
O segundo parâmetro de google.load()
é o número da versão
solicitada da biblioteca de cliente JavaScript. Nosso esquema de numeração de versões
é modelado de acordo com o usado pela API Google Maps. Confira os números de versão possíveis 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 de revisão principal e secundário especificado.
Depois de chamar google.load()
, você precisa informar ao carregador para esperar até que a página termine de carregar e chamar seu código:
google.setOnLoadCallback(getMyBlogFeed);
Onde getMyBlogFeed()
é uma função que vamos definir em uma seção
posterior deste documento. Use essa abordagem em vez de ter um
manipulador onload
anexado ao elemento
<body>
.
Como fazer a autenticação no serviço do Blogger
É possível acessar feeds públicos e privados usando a API Data do Blogger. Os feeds públicos não exigem autenticação, mas são somente leitura. Se você quer modificar blogs, seu cliente precisa se autenticar antes de solicitar feeds privados.
A biblioteca de cliente JavaScript usa o sistema de autenticação AuthSub. Para mais informações sobre a 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 de proxy AuthSub é 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 AuthSub especiais que permitem que ele aja em nome de um usuário específico.
Confira uma breve visão geral do que acontece durante o processo de autenticação de um cliente JavaScript baseado na Web:
- O aplicativo cliente chama o método
google.accounts.user.login()
fornecido pela biblioteca de cliente, transmitindo um valor de "escopo" que indica qual serviço do Google usar. No Blogger, o escopo é"http://www.blogger.com/feeds/"
. - 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.
- Se o usuário fizer login, o sistema AuthSub vai enviar o navegador de volta ao URL do cliente da Web, transmitindo o token de autenticação.
- 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()
. - Quando o aplicativo cliente 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 que a 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ê não quiser que a imagem apareça na 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;"
Confira 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: recomendamos que você forneça um
botão de login ou outro mecanismo de entrada do usuário para solicitar que ele inicie o processo
de login manualmente. Se você chamar
google.accounts.user.login()
imediatamente após o carregamento, sem
esperar a interação do usuário, a primeira coisa que o usuário vai encontrar ao chegar
na página será uma página de login do Google. Se o usuário decidir não fazer login, o Google
não vai direcionar o usuário de volta à sua página. Então, do ponto de vista do usuário, ele
tentou visitar sua página, mas foi rejeitado e nunca mais voltou. Esse cenário
pode ser confuso e frustrante para os usuários. No código de exemplo deste documento,
vamos chamar google.accounts.user.login()
imediatamente após
o carregamento para manter o exemplo simples, mas não recomendamos essa abordagem para
aplicações de cliente reais.
Não é necessário fazer nada com a variável
token
. A biblioteca de cliente rastreia o token, então você não
precisa 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
vai mostrar uma mensagem de erro para o usuário. Se você 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()
é sua função. Se um erro de inicialização
ocorrer, a função vai receber um objeto Error padrão. Você pode fazer o que
quiser com esse objeto.
O token permanece válido até que você o revogue chamando
google.accounts.user.logout()
:
function logMeOut() { google.accounts.user.logout(); }
Se você não chamar logout()
, o cookie que armazena o
token vai durar dois anos, a menos que o usuário o exclua. O cookie é mantido
em todas as sessões do navegador, para que o usuário possa fechar o navegador, reabri-lo
e voltar ao seu cliente, e ainda assim o login será mantido.
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, o cliente precisará processar
a condição de erro chamando logout()
para remover o cookie
que contém o token atual e, em seguida, chamar login()
novamente para
adquirir um token novo e válido.
Há outros dois métodos do AuthSub 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 de depuração.
Para detalhes sobre como usar o JavaScript para interagir com o AuthSub, incluindo
informações sobre o gerenciamento de tokens e sobre checkLogin()
e
getInfo()
, consulte o documento Usar
a autenticação "AuthSub" com a biblioteca de cliente JavaScript.