2012-07-04 75 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對象 –

相關問題