Programar a Gestão de Trackbacks no Próprio Blog

Como colocar em contato o seu site com os outros blogs através da integração do cross posting

O trackback é um sistema introduzido pelo Movable Type para permitir a conexão entre posts de blogs diferentes. Esta ténica de cross-posting colocou em contato todos os blogs que suportam tal funcionalidade, contribuindo para o crescimento exponencial que este instrumento de self publishing teve nesses anos.

autofalante.jpg
Photo credit: Maurice Schadee

O mecanismo é simples: todos os blogs que aceitam “respostas” aos próprios posts, mesmo de blogs externos, fornecem um identificador único para cada post chamado URL de trackback.

Quando um usuário posta sobre o mesmo em resposta ou em referência a uma notícia lida em qualquer lugar, o fará incluindo no post o URL de trackback da notícia de referência. Nos dois blogs, portanto, os posts serão linkados reciprocamente: em um aparecerá o URL de trackback (qualquer coisa parecida com “estou falando do artigo lido aqui”) e no outro aparecerá a notificação de resposta (parecido com “ei, alguém me respondeu neste endereço”).

O procedimento de trackback, portanto, acontece em dois passos:

  • Um blog que “chama” e notifica um comentário. A chamada se chama “Ping”.
  • Um blog que responde à chamada comunicando se o comentário foi aceito ou não.

Muitas plataformas têm a gestão de trackbacks integrada por default, mas na rede existem muitos sistemas informativos customizados desenvolvidos ad hoc (como o ikaro.net). Para estes sistemas, portanto, a gestão de trackbacks deve ser desenvolvida manualmente.

São duas as funcionalidades que podem ser implementadas em um sistema de self publishing custom. É possível habilitar o sistema para:

  • aceitar respostas de blogs externos (receber ping)
  • responder para blogs externos (enviar ping)

O URL de trackback

Agora vamos analisar nosso blog para ver se em qualquer lugar da rede fizeram referência a notícias ou artigos nele publicados. Vamos gerir, portanto, os pedidos de ping. Tecnicamente o ping é uma chamada a um script com o método POST, com a qual se enviam variáveis, tanto com POST quanto com GET. Este script constituirá o URL de trackback.

O fluxo de dados do script é o seguinte:

1. Recepção do ping com os dados enviados através do método POST.
2. Verificação dos dados, se não estiverem corretos envia resposta negativa em formato XML e sai.
3. Se estiverem corretos elabora os dados. Se a elaboração não dá certo envia resposta negativa em formato XML e sai.
4. Envia resposta positiva em formato XML.

Especificação dos dados

Vamos ver os nomes dos parâmetros enviados pelos pings que o nosso script deve gerir:

  • MÉTODO GET

1. ID único do nosso post, ao qual o que chama está respondendo – obrigatório

  • MÉTODO POST

1. url | o URL único que contém a resposta ao post – obrigatório
2. blog_name | o nome do blog externo – facultativo
3. title | o título da resposta – facultativo
4. excerpt | o texto da risposta – facultativo

Especificação das respostas

As respostas aos pings, tanto positivas quanto negativas, devem ser enviadas em formato XML. O script, portanto, deve enviar o header apropriado (“Content-Type: text/xml”) antes de cada eventual output da fonte.

Resposta êxito positivo:

<?xml version=”1.0″ encoding=”utf-8″?>
<response>
<error>0</error>
</response>

Resposta êxito negativo:

< ?xml version=”1.0″ encoding=”utf-8″?>
<response>
<error>1</error>
<message>Messaggio di errore</message>
</response>

Como vimos nas especificações dos parâmetros, as únicas duas variáveis obrigatórias são o ID enviado com o método GET e o campo “url” que identifica o post que chama.

Esqueleto de exemplo

Vamos mostrar, portanto, um válido esquema de script ampliando um pouco o esquema do script:

1. Verifico se o campo HTTP_GET_VARS[‘id’] e HTTP_POST_VARS[‘url’] são válidos
2. Se não são válidos envio a resposta negativa (veja acima) em formato XML
3. Se são válidos, salvo a resposta contida nas variáveis POST blog_name, title, excerpt e a conecto ao post apropriado através de HTTP_GET_VARS[‘id’]
4. Se salvar não deu certo, envio êxito negativo com formato XML
5. Se salvar deu certo, envio finalmente êxito positivo com XML

O ponto 3 é estreitamente dependente de como o sistema informativo administra os dados. Se as informações são memorizadas em uma base de dados deverão ser inseridas na tabela de respostas indicando como chave o ID do post de referência enviado com o método GET.

Se, ao contrário, as respostas são geridas em arquivos XML ou em arquivos de texto ASCII, deverão ser memorizadas com as especificações do sistema informativo em uso.

URL de trackback

Uma vez desenvolvido e salvo em qualquer lugar, o script servirá para fornecer o URL de trackback relativo a cada post do seu blog. Vamos supor que o script tenha o URL http://seu.blog.br/cgi/trackback.cgi, o URL de trackback a ser fornecido aos seus visitantes pelo artigo com id=452 será, por exemplo: http://seu.blog.br/cgi/trackback.cgi?id=452

Esquema de fonte a ser modificada

Segue o shot de um esqueleto de fonte php modificável com base às próprias exigências.

source.gif

Comments

comments