根据 Tumblr API V2,有一些方法可以使用标签从您的 Tumblr 博客获取帖子和其他详细信息,反之亦然。
我想获取所有标签(唯一标签)的列表,而不考虑博客文章
因此,如果我有 10 个标记为 Technology
、Web
和 < strong>3 个标记为 JavaScript
、Web
的帖子
- 我想以这样的方式查询我的博客,它会给我 Technology
、Web
和 JavaScript
例如,一个数组 - results.posts.tags = ["Technology", "Web", "JavaScript"]
或一个对象,我可以深入挖掘以找到 标签
,然后循环迭代。
最佳答案
我从未使用过 Tumblr API,但看起来您应该能够构建标签列表 - 但没有内置方法。首先,您必须通过查询 /info
方法1 来查找博客中的帖子总数。其网址是:
api.tumblr.com/v2/blog/{base-hostname}/info?api_key={key}
从中获取响应并将其解码为一个对象(jQuery、extjs、w/e 都可以),您可以找到 posts
字段以获取帖子总数。使用它,您可以使用 /posts
方法开始一次拉回 20 个帖子,根据 API 的最大值。其网址是:
api.tumblr.com/v2/blog/{base-hostname}/posts[/type]?api_key={key}&[optional-params=]
您可能想省略 /type
,但您需要在可选参数中指定 offset
。使用偏移量,您可以处理所有帖子,一次 20 个2,直到您将它们全部下载(您从 /info
查询中获得的数字)。下载帖子时,只需跟踪获得的标签即可。
不幸的是,您必须下载帖子的正文才能获得标签列表,但我没有看到任何其他方法可以为您提供标签,也没有看到压制正文并只看到元的选项-帖子数据。
**编辑**
1:根据 Felix 的评论,众所周知,/info
返回的帖子数有时会略有偏差。在预期数字很高的情况下,您需要确保只循环实际收到的结果,而不是预期的结果。要处理预期数量较低的情况,您可以进行一次查询,超过结束应该是什么,看看是否能得到任何结果。在这一点上,尽管您可能会考虑将 /info
查询放在一起,只查询 /posts
直到您不再获得任何结果。
2:根据 Felix 的第二条评论,尽管 API 列出了您可以一次拉下多少帖子的值范围,如 1-20
和 20
默认值,据说它最多可以接受 50
。一次提取 50 个结果可能会加快速度/降低带宽,但这会使您的代码更复杂才能正确执行。由于它是一个未记录的功能(阅读:可能只是一个错误),因此不能保证它会继续工作。因此,您可以尝试一次查询 50 个,但需要准备好处理 400
错误代码或类似的代码,以防他们使其服务与 API 匹配,然后默认返回 20。
关于javascript - 从 tumblr 博客获取所有唯一标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11333691/