2012-07-04 49 views
3

有办法让帖子和其他详细信息使用标签,从你的Tumblr博客加入,反之亦然按照Tumblr API V2获得来自tumblr博客所有独特的标签

我想要得到的所有标签的列表(唯一无论博客文章标签)

所以如果我有文章标签TechnologyWeb和文章标签JavaScriptWeb - 我想查询我的博客中这样一种方式,它给了我TechnologyWebJavaScript

地说例如,阵列 - results.posts.tags = ["Technology", "Web", "JavaScript"] 或一个对象,我可以挖找到tags,然后循环迭代。

回答

3

我从来没有使用过Tumblr API,但它看起来像你应该能够建立一个标签列表 - 但没有内置的方法。首先,您必须通过查询/info方法来查找博客中的帖子总数。造成这种情况的网址是:

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,但您将需要在选购-PARAMS指定offset。有了抵消,你可以通过所有的职位,20时间,直到你已经下载他们全部(你从/info查询得到的数字)。当你下载帖子时,只需跟踪你得到的标签。

这是一种不幸,你必须下载帖子的主体才能得到标签列表,但我没有看到任何其他方法给你的标签,或一个选项来压缩身体,只是看到职位的元数据。

**编辑**

:帖子/info回报被称为是稍微偏离有时每Felix的注释#。在预期数量很高的情况下,您需要确保您只循环实际收到的结果,而不是预期的结果。要处理预期数量较少的情况,可以通过一个查询来查看最终结果,并查看是否得到任何结果。在这一点上,尽管你可能会考虑全部删除/info查询,只是查询/posts,直到你没有得到任何结果。

:每Felix的第二个意见,即使API列出值的多少职位,你可以与20默认一次为1-20拉下范围,据称它会接受多达50。一次提取50个结果可以加速/降低带宽,但这会让你的代码更加复杂。由于它是一个未公开的功能(阅读:可能只是一个错误),不保证它会继续工作。因此,您可以尝试一次查询50,但需要准备好处理400错误代码或类似的情况,以防他们的服务与API匹配,然后默认回到20.

+0

这就是我不想跳到的明显的最后一招。我不想强调查询,并通过循环等方式强调我的JavaScript。感谢您的回复。这似乎是目前唯一的方式 –

+1

@OmShankar,这真的是唯一的方法来做到这一点。然而,**一个注释**:通过在查询字符串中指定'&limit = 50',并且每次将您的'offset'增加50次,您实际上可以一次获取** 50 **帖子:)这是一个无证件API功能。 – Felix

+2

另外需要注意的是:这是一个[**已知的bug **](https://groups.google.com/d/topic/tumblr-api/ZOkrxlUKIc8/discussion)_total post_ count_(在字段'posts '通过调用'api.tumblr.com/v2/blog/{base-hostname}/info?...'返回的结果往往是不正确的。此外,调用'api.tumblr.com/v2/blog/.../posts'也会返回一个名为'total_posts'的字段,这个number_也常常是_incorrect_。它会让你的某处达到_close_,但不要指望它被认为是合适的 – Felix

0

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

+0

它只适用于编辑/创建贴。那时Tumblr给你一个已经填充了独特标签的JS对象 –

相关问题