2009-10-14 19 views
8

Me gustaría integrar mi feed tumblr en mi sitio web. Parece que tumblr tiene una API para esto, pero no estoy muy seguro de cómo usarlo. Por lo que entiendo, solicito la página, y tumblr devuelve un archivo xml con los contenidos de mi blog. ¿Pero cómo puedo hacer de este xml un html significativo? ¿Debo analizarlo con php, convertir las etiquetas relevantes en encabezados, etc.? Me digo a mí mismo que no puede ser tan doloroso. Alguien tiene alguna idea?Integración del blog tumblr con el sitio web

+0

La pregunta menciona específicamente a php, por lo que está relacionado con la programación. –

Respuesta

4

Puede usar PHPTumblr, un contenedor de API escrito en PHP que hace que la recuperación de publicaciones sea muy fácil.

+1

Godsent. Ahora para aprender php ... – Ying

1

Existen dos formas principales de hacerlo. Primero, puede analizar el xml, extrayendo el contenido de las etiquetas que necesita (algunas formas de hacerlo dependiendo de si usa un analizador SAX o DOM). Esta es la solución rápida y sucia.

También puede usar un XSLT transformation para convertir la fuente xml directamente al html que desee. Esto es más complicado ya que tiene que aprender la sintaxis para las plantillas xslt, que es un poco detallado.

11

Hay una inclusión de JavaScript que hace esto ahora, disponible en Tumblr (hay que iniciar sesión para verlo): http://www.tumblr.com/developers

Se termina siendo algo como esto:

<script type="text/javascript" src="http://{username}.tumblr.com/js"></script> 
+2

Esta es una manera muy fácil y funciona. También puede agregar? Num = 4 después de js para determinar cuántas publicaciones se muestran (aquí sería 4). También puede ajustar esto con css, pero la desventaja de este método es que no se muestran los tiempos – CodeVirtuoso

+0

¿Cómo se configura el desplazamiento? El resultado comienza en –

+1

Si bien parece que hay más opciones (consulte aquí: http://www.tumblr.com/docs/en/api/v2#posts), parece que se ignora el desplazamiento. Sin embargo, podría usar la API completa para un mejor control. – kweerious

3

Si usted va a http://yourblog.tumblr.com/api/read donde "yourblog" debe reemplazarse con el nombre de su blog (tenga cuidado, si aloja su blog de Tumblr en un dominio personalizado, como yo uso, use eso) verá la versión XML de su blog. Me sale realmente complicado en Firefox por alguna razón, así que uso Chrome, pruebe un par de navegadores diferentes, ayudará a ver el archivo XML bien formado, con sangría y demás.

Una vez que esté viendo la versión XML de su blog, observe que cada publicación tiene una serie de datos en una orientación attribute = "value". Aquí está un ejemplo de mi 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"> 

Por lo tanto, hay un montón de maneras de hacer esto, te voy a mostrar el que usé, y caer mi código en la parte inferior de este post lo que sólo puede sastre que a tus necesidades Observe la parte type = "link"? O el ID = "11576453174"? Estos son los valores que usará para obtener datos en su script PHP.

Aquí está el ejemplo:

<!-- 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="" /> 
    '; 
?> 

Por lo tanto, esto es en realidad bastante simple. El script PHP aquí coloca datos (como el título del post y el texto del post) del archivo xml en variables php, y luego borra esas variables junto con algunos html para crear un div que incluye un fragmento de una publicación del blog. Esta cuenta con la publicación de texto más reciente. Siéntase libre de usarlo, solo ingrese y cambie esa primera URL a su propio blog. Y luego elija los valores que desee de su archivo xml.

Por ejemplo, digamos que desea, no es la más reciente, sino la segunda publicación de "foto" más reciente.Usted tiene que cambiar el request_url a esto:

$request_url = "http://wamoyo.com/api/read?type=photo&start=1" 

O digamos que desea que el mensaje más reciente con una etiqueta específica

$request_url = "http://wamoyo.com/api/read?tagged=events"; 

O digamos que quieres un puesto específico, sólo tiene que utilizar el id

$request_url = "http://wamoyo.com/api/read?id=11576453174"; 

Así que todo lo que tiene que hacer es tachuela en el? con cualquier parámetro y use un & si tiene múltiples parámetros.

Si usted quiere hacer algo más elaborado, necesitará la documentación de la API tumblr aquí: http://www.tumblr.com/docs/en/api/v2

la esperanza que esto era útil!

+1

Creo que también puede usar 'yourblogname.tumblr.com' en nombres de dominio personalizados. Por ejemplo, 'crystilogic.tumblr.com/api/read/json' funciona para mí, pero' crystilogic.tumblr.com' redirige a 'mixingmemory.org'. – isomorphismes

+0

Sí, definitivamente cierto. Santo ... ¡HAHA! He aprendido mucho desde que hice esta pregunta, jajaja. Estoy haciendo cosas de node.js ahora, algo genial para ver cuánto he aprendido. Gracias stackoverflow people! – Costa

Cuestiones relacionadas