Programar a Gestão de Trackbacks no Próprio Blog
By Dan Di Gregorio | 29 August 2008 | Desenvolvimento
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.

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.

Tags | Desenvolvimento, php


August 29th, 2008 at 8:30 am
Interessante a explicação de como funciona “manualmente” os trackbacks
Ao fazer algum site dinâmico vou tentar aplicar, se coneguir rsrs.
Abraços
October 10th, 2008 at 9:38 pm
Olá!
Super interessante o seu artigo, mas sou bem leigo no assunto, estou engatinhando ainda…
Achei interessante este recurso “trackback” mas parece que o blogger não disponibiliza.
Voce pode me ajudar, quanto a isso?
Devo mudar?
Ou tem outro recurso identico que posso usar no blogger?
Brigadão amigo
October 11th, 2008 at 1:43 pm
Olà, voce pode fazer trackback manualmente com esse serviço;
http://tech.wizbangblog.com/ping.php
Ciao!
Dan
December 9th, 2008 at 5:00 am
Muito interessante tratar do conceito do trackback. Tem isso no wordpress e fiquei interessado em usar….
Fiquei com algumas dúvidas a respeito.
Alguns blogs tem essa URL de trackback no proprio post. Quando não tá no post, quer dizer que ele não tem esse recurso habililitado ?
[]s