Integrando blog tumblr com site
Pergunta
Gostaria de integrar meu feed do Tumblr ao meu site.Parece que o tumblr tem uma API para isso, mas não tenho certeza de como usá-la.Pelo que entendi, solicito a página, e o tumblr retorna um arquivo xml com o conteúdo do meu blog.Mas como faço para transformar esse xml em html significativo?Devo analisá-lo com php, transformando as tags relevantes em cabeçalhos e assim por diante?Digo a mim mesmo que não pode ser tão doloroso.Alguém tem alguma ideia?
Solução
Você pode usar Phptumblr, um invólucro de API escrito no PHP, que facilita a recuperação de postagens.
Outras dicas
Há um JavaScript incluindo isso agora, disponível no Tumblr (você precisa fazer login para vê -lo): http://www.tumblr.com/developers
Acaba sendo algo assim:
<script type="text/javascript" src="http://{username}.tumblr.com/js"></script>
Se você vai para http://seublog.tumblr.com/api/read onde "seublog" deve ser substituído pelo nome do seu blog (tenha cuidado, se você hospedar seu blog do Tumblr em um domínio personalizado, como eu, use-o), você verá a versão XML do seu blog.Por algum motivo, fica muito confuso para mim no Firefox, então eu uso o Chrome, tento alguns navegadores diferentes, vai ajudar a ver o arquivo XML bem formado, recuado e tal.
Ao olhar a versão XML do seu blog, observe que cada postagem contém um monte de dados na orientação atributo = "valor".Aqui está um exemplo do meu blog:
<post id="11576453174" url="http://wamoyo.com/post/11576453174" url-with-slug="http://wamoyo.com/post/11576453174/100-year-old-marathoner-finishes-race" type="link" date-gmt="2011-10-17 18:01:27 GMT" date="Mon, 17 Oct 2011 14:01:27" unix-timestamp="1318874487" format="html" reblog-key="E2Eype7F" slug="100-year-old-marathoner-finishes-race" bookmarklet="true">
Então, há muitas maneiras de fazer isso, vou mostrar a que usei e deixar meu código no final deste post para que você possa adaptá-lo às suas necessidades.Observe a parte type="link"?Ou o id="11576453174" ?Esses são os valores que você usará para extrair dados para seu script PHP.
Aqui está o exemplo:
<!-- The Latest Text Post -->
<?php
echo "";
$request_url = "http://wamoyo.com/api/read?type=regular"; //get xml file
$xml = simplexml_load_file($request_url); //load it
$title = $xml->posts->post->{'regular-title'}; //load post title into $title
$post = $xml->posts->post->{'regular-body'}; //load post body into $post
$link = $xml->posts->post['url']; //load url of blog post into $link
$small_post = substr($post,0,350); //shorten post body to 350 characters
echo // spit that baby out with some stylish html
'<div class="panel" style="width:220px;margin:0 auto;text-align:left;">
<h1 class="med georgia bold italic black">'.$title.'</h1>'
. '<br />'
. '<span>'.$small_post.'</span>' . '...'
. '<br /></br><div style="text-align:right;"><a class="bold italic blu georgia" href="'.$link.'">Read More...</a></div>
</div>
<img style="position:relative;top:-6px;" src="pic/shadow.png" alt="" />
';
?>
Então, isso é bastante simples.O script PHP aqui coloca dados (como o título e o texto do post) do arquivo xml em variáveis php e, em seguida, ecoa essas variáveis junto com algum html para criar um div que apresenta um trecho de uma postagem do blog.Este apresenta a postagem de texto mais recente.Sinta-se à vontade para usá-lo, basta entrar e alterar o primeiro URL para o seu próprio blog.E então escolha os valores desejados em seu arquivo xml.
Por exemplo, digamos que você queira não a postagem mais recente, mas a segunda "foto" mais recente.Você tem que alterar o request_url para isto:
$request_url = "http://wamoyo.com/api/read?type=photo&start=1"
Ou digamos que você queira a postagem mais recente com uma tag específica
$request_url = "http://wamoyo.com/api/read?tagged=events";
Ou digamos que você queira uma postagem específica, basta usar o id
$request_url = "http://wamoyo.com/api/read?id=11576453174";
Então tudo que você precisa fazer é aderir ao ?com qualquer parâmetro e use um & se você tiver vários parâmetros.
Se você quiser fazer algo mais sofisticado, precisará dos documentos da API do Tumblr aqui: http://www.tumblr.com/docs/en/api/v2
Espero que isso tenha sido útil!
Existem duas maneiras principais de fazer isso. Primeiro, você pode analisar o XML, retirando o conteúdo das tags necessárias (algumas maneiras de fazer isso, dependendo se você usa um analisador sax ou dom). Esta é a solução rápida e suja.
Você também pode usar um Transformação XSLT Para converter a fonte XML diretamente para o HTML que você deseja. Isso está mais envolvido, pois você precisa aprender a sintaxe para modelos XSLT, o que é um pouco detalhado.