从tumblr博客获取所有独特的标签

时间:2012-07-04 18:05:03

标签: javascript tumblr

根据 Tumblr API V2

,有很多方法可以使用Tumblr Blog和Vice Versa中的标签获取帖子和其他详细信息

我想获得所有标签的列表(唯一标签),不论博客文章

因此,如果我有 {<1}} Technology Web >帖子标记为 JavaScript Web - 我想以这样一种方式查询我的博客:TechnologyWebJavaScript

比如说,一个数组 - results.posts.tags = ["Technology", "Web", "JavaScript"] 或者一个对象,我可以挖掘它来找到tags,然后循环迭代。

3 个答案:

答案 0 :(得分:3)

我从未使用过Tumblr API,但看起来您应该能够构建一个标记列表 - 但是没有内置的方法。首先,您必须通过查询/info方法 1 来查找博客中的帖子总数。其URL是:

api.tumblr.com/v2/blog/{base-hostname}/info?api_key={key}

从中获取响应并将其解码为对象(jQuery,extjs,w / e将起作用),您可以找到帖子总数的posts字段。使用它,您可以使用/posts方法,根据API,一次开始撤回帖子20,最大值。其URL是:

api.tumblr.com/v2/blog/{base-hostname}/posts[/type]?api_key={key}&[optional-params=]

您可能想要省略/type,但您需要在optional-params中指定offset。使用偏移量,您可以直接处理所有帖子,每次20个 2 ,直到您全部下载它们(您从/info查询中获得的数字)。当您下载帖子时,只需跟踪您获得的标签。

有点不幸的是你必须下载文章的正文以获取标签列表,但我没有看到任何其他方法给你标签,或者一个选项来压制身体而只看到元-data for posts。

<强> **编辑**

1 :根据Felix的评论,有时会发现/info次回复的帖子略有偏差。在预期数量很高的情况下,您需要确保仅循环实际收到的结果,而不是您预期的结果。要处理预期数量较少的情况,您可以执行一个查询,直到结果应该是什么,并查看是否得到任何结果。此时,您可以考虑将/info查询全部放在一起,只查询/posts,直到您不再获得任何结果。

2 :Per Felix的第二条评论,即使API列出了您可以一次性调出的帖子的值范围,1-20默认为20,据说它最多会接受50。一次提取50个结果可以加快/降低带宽,但这会使您的代码更加复杂。由于它是一个未记录的功能(读:可能只是一个bug),因此不能保证它会继续工作。因此,您可以尝试一次查询50个,但需要准备好处理400错误代码或类似内容,以防它们使其服务与API匹配,然后默认返回到20。

答案 1 :(得分:0)

我对它的工作原理一无所知,但确实如此:看看Tumblr tag list bookmarklet。应该至少给你一些你可以使用的代码。

答案 2 :(得分:0)

我知道这是一篇旧帖子,但我认为它可能对某些人有用,因为我花时间把它变成了一个javascript,它将所有唯一标签作为javascript对象返回。

https://github.com/scintillate/tumblrtag/