将tumblr博客与网站集成

时间:2009-10-14 18:43:33

标签: php blogs tumblr

我想将我的tumblr Feed整合到我的网站上。似乎tumblr有一个API,但我不太清楚如何使用它。根据我的理解,我请求页面,tumblr返回一个包含我博客内容的xml文件。但是,我如何将这个xml变成有意义的html?我必须用php解析它,将相关的标签转换成标题等等吗?我告诉自己这不会那么痛苦。有人有任何见解吗?

4 个答案:

答案 0 :(得分:11)

现在有一个javascript包含这样做,可以从Tumblr获得(你必须登录才能看到它):http://www.tumblr.com/developers

最终会出现这样的事情:

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

答案 1 :(得分:4)

您可以使用PHPTumblr,这是一个用PHP编写的API包装器,可以轻松地检索帖子。

答案 2 :(得分:3)

如果您转到http://yourblog.tumblr.com/api/read,其中“yourblog”应替换为您博客的名称(请注意,如果您在自定义域上托管Tumblr博客,就像我一样,请使用它)查看您博客的XML版本。由于某些原因,我在Firefox上看起来非常混乱所以我使用Chrome,尝试使用几种不同的浏览器,这将有助于查看格式良好,缩进等XML文件。

一旦您查看博客的XML版本,请注意每个帖子都有一组属性=“value”的数据。以下是我博客的一个例子:

<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">

所以,有很多方法可以做到这一点,我会告诉你我使用的那个,并将我的代码放在这篇文章的底部,这样你就可以根据自己的需要进行定制。注意type =“link”部分?或者id =“11576453174”?这些是您将用于将数据提取到PHP脚本中的值。

以下是示例:

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

所以,这实际上非常简单。 PHP脚本在这里将数据(如帖子标题和帖子文本)从xml文件放入php变量,然后回显这些变量以及一些html来创建一个div,其中包含来自博客文章的片段。这篇文章介绍了最新的文章。随意使用它,只需进入并将第一个网址更改为您自己的博客。然后从xml文件中选择所需的任何值。

例如,假设您想要的不是最近的,而是最近的第二张“照片”帖子。您必须将request_url更改为:

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

或者假设你想要一个带有特定标签的最新帖子

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

或者假设你想要一个特定的帖子,只需使用id

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

所以你所要做的就是坚持下去?无论参数如何,都要使用&amp;如果您有多个参数。

如果你想做更好的事情,你需要这里的tumblr api文档:http://www.tumblr.com/docs/en/api/v2

希望这有用!

答案 3 :(得分:1)

有两种主要方法可以做到这一点。首先,您可以解析xml,从您需要的标记中提取内容(根据您使用的是SAX还是DOM解析器,有几种方法可以实现)。这是快速而肮脏的解决方案。

您还可以使用XSLT transformation将xml源直接转换为所需的html。由于你必须学习xslt模板的语法,所以这涉及更多,这有点冗长。