Tumblr API:遍历所有现有帖子并添加文本

时间:2016-08-26 15:08:31

标签: php ruby tumblr

我需要遍历我在Tumblr上的所有现有帖子并向每个帖子添加文本(URL),但Tumblr群发编辑器只允许大量添加标签。

如何使用API​​执行我需要执行的操作(似乎没有以这种方式使用API​​进行编辑的示例)?

PHP或Ruby很好。

1 个答案:

答案 0 :(得分:0)

不,没有。 API没有提供一次编辑所有帖子的方法。你必须一次做到这一点。

您可以通过posts method api.tumblr.com/v2/blog/{blog-identifier}/posts?api_key={key}检索帖子列表,一次最多可返回20个帖子。您可以指定offset参数,以便在到达结尾之前继续提取更多帖子。

$requestURI = "http://api.tumblr.com/v2/blog/$blogId/posts?api_key=$APIkey&offset=%d";
if ($response = file_get_contents(sprintf($requestURI, 0))) {
    $data = json_decode($response);
    $posts = $data["response"]["posts"];
    $totalPosts = $data['total_posts'];
    $gotPosts = count($posts);
    while($gotPosts < $totalPosts) {
        $offset = $totalPosts - $gotPosts;
        $response = file_get_contents(sprintf($requestURI, $offset));
        $data = json_decode($response);
        $posts = array_merge($posts, $data["response"]["posts"]);
        $gotPosts = count($posts);
    }
}

一旦您为给定的Tumblelog累积了所有帖子的列表,您就可以迭代它们并通过edit method api.tumblr.com/v2/blog/{blog-identifier}/post/edit进行编辑。

foreach($posts as $post) {
    /* do your edit posts here */
}