我想获得所有标签的列表(唯一标签),不论博客文章
因此,如果我有 {<1}} Technology
Web
>帖子标记为 JavaScript
, Web
- 我想以这样一种方式查询我的博客:Technology
,Web
和JavaScript
比如说,一个数组 - results.posts.tags = ["Technology", "Web", "JavaScript"]
或者一个对象,我可以挖掘它来找到tags
,然后循环迭代。
答案 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对象返回。