8

我想将我的 tumblr 提要整合到我的网站中。似乎 tumblr 对此有一个 API,但我不太确定如何使用它。据我了解,我请求该页面,然后 tumblr 返回一个包含我博客内容的 xml 文件。但是我如何将这个 xml 变成有意义的 html?我必须用 php 解析它,将相关标签转换为标题等吗?我告诉自己,这不可能那么痛苦。有人有任何见解吗?

4

4 回答 4

11

现在有一个 javascript 包含可以执行此操作,可从 Tumblr 获得(您必须登录才能看到它):http ://www.tumblr.com/developers

它最终是这样的:

<script type="text/javascript" src="http://{username}.tumblr.com/js"></script>
于 2010-08-03T02:07:03.313 回答
4

您可以使用PHPTumblr,这是一个用 PHP 编写的 API 包装器,它使检索帖子变得轻而易举。

于 2009-10-14T18:50:15.377 回答
3

如果您访问http://yourblog.tumblr.com/api/read,其中“yourblog”应该替换为您的博客名称(请注意,如果您像我一样在自定义域上托管您的 Tumblr 博客,请使用那)你会看到你的博客的 XML 版本。由于某种原因,它在 Firefox 上对我来说真的很乱,所以我使用 Chrome,尝试几个不同的浏览器,这将有助于查看 XML 文件格式正确、缩进等。

一旦您查看了博客的 XML 版本,就会注意到每篇文章都有一组属性 =“值”方向的数据。这是我博客中的一个例子:

<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。这一篇以最新的文字帖子为特色。随意使用它,只需进入并将第一个 url 更改为您自己的博客。然后从 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";

所以你所要做的就是坚持 ? 使用任何参数并使用 & 如果您有多个参数。

如果你想做一些更高级的事情,你需要 tumblr api 文档:http ://www.tumblr.com/docs/en/api/v2

希望这有帮助!

于 2011-11-03T05:42:15.450 回答
1

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

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

于 2009-10-14T18:50:54.363 回答