从Tumblr检索帖子

时间:2013-09-23 18:05:58

标签: php api simplexml tumblr

我已经尝试过关于这个主题的研究,但是我做的越多,我就越感到困惑 - 似乎Tumblr的API上的文档到处都是(并且过时了?);所以也许有人会对我有一些建议。

我所要做的就是抓住我最近的Tumblr帖子并将其显示在我网站的主页上;没什么太花哨的。我不需要POST到tumblr,我只需要信息;我的想法是,我正在与之合作的团队希望将Tumblr用作一种穷人的CMS,同时保持他们在Tumblr网站上的存在。

我可以使用PHP和SimpleXML(http://username.tumblr.com/api/read)轻松检索帖子 - 但这不会在简单的文本帖子之外提供太多支持(其他内容,如视频,照片等等 - 以不同的方式发布);它看起来并不像是一个官方支持的访问tumblr数据的方法(或者它可能是?)。 Tumblr本身将人们指向tumblr.php,但我对我的生活无法弄清楚如何设置它,因为对于刚刚开始涉猎的人来说,没有真正的文档。 StackOverflow上的一些帖子说Tumblr.php不再起作用了,并将人们指向tumblrOauth.php,但我遇到了同样的问题。没有真正的'新API'文档。我知道如何在Tumblr中设置我的'app' - 我只是不知道所有Github文件(对于这两个系统)如何相互通信/页面...

有人有什么建议吗?我只是在寻找正确方向上的一点,也许是对如何勾选这些位的初步推动?

非常感谢电子朋友!

1 个答案:

答案 0 :(得分:8)

嘿我在阅读完这个页面之后使用了一些API而不是Tumblr API:http://www.tumblr.com/docs/en/api/v2我非常确定我明白如何设置它以便我这样做&我#39;我会去解释,你可以告诉我你是否取得了一些成功

(删除代码,PHP API很糟糕)

编辑:删除原始修改

因为Tumblr PHP客户端是垃圾,我自己看了一下,只是设计了一小段代码来解决这里的问题,并在一个数组中检索你的最新帖子,这样你会这样:

Array
(
    [0] => Array
        (
            [id] => 49867777007
            [type] => photo
            [description] => 
            [date] => 2013-05-07 18:28:41 GMT
            [short_url] => http://tmblr.co/Z5XfMxkSMUFl
            [caption] => 
            [photo_url] => http://31.media.tumblr.com/a13494fb3cda1e40ab39211973a094f9/tumblr_mm0038sZGH1qdlh1io1_400.gif
            [width] => 395
            [height] => 350
        )

使用此代码,然后在页面

上查看$myposts
<?php
    $apikey = "your_api_key";
    $limit = 10;
    $tumblr = "your.tumblr.com";

    $apidata = json_decode(file_get_contents("http://api.tumblr.com/v2/blog/$tumblr/posts?api_key=$apikey&limit=$limit"));

    $mypostsdata = $apidata->response->posts;
    $myposts = array();

    $i = 0;
    foreach($mypostsdata as $postdata) {
        $post['id'] = $postdata->id;
        $post['type'] = $postdata->type;
        $post['description'] = $postdata->description;
        $post['date'] = $postdata->date;
        $post['short_url'] = $postdata->short_url;
        $post['caption'] = $postdata->caption;

        $post["photo_url"] = $postdata->photos[0]->original_size->url;
        $post["width"] = $postdata->photos[0]->original_size->width;
        $post["height"] = $postdata->photos[0]->original_size->height;

        $myposts[$i] = $post;
        $i++;
    }

    // Then handle $myposts later on your page
    echo '<pre>'.print_r($myposts).'</pre>';

    // There's quite a lot more data you can use so if you want
    // to print out $mypostsdata then you might find any more data you need
?>

很抱歉以前的建议没有用,PHP客户端真的很糟糕,但如果这还不够或者你需要对它进行一些修改,请告诉我