2012-06-23 191 views
1

我正在使用Twitter Search API,我無法理解推文的id字段。Twitter搜索API ID含義

例如,這裏是一個:<id>tag:search.twitter.com,2005:1990561514</id>。真正的ID是最後的數字部分,對嗎?爲什麼Twitter已經不提供這個在一個單一的元素?而且,爲什麼在ID字段中有2005年?那年的ID和接下來的一年推文是否將ID重新設置爲零?該編號索引到年份?

我在問所有這些東西,因爲我打算使用since_id的選項來檢索新的推文。如果ID不是唯一的並且取決於年份,則它不會按預期工作。

謝謝。

+0

請發表您的查詢代碼 –

回答

2

標籤是唯一的 - 但它的部分是多餘的。

tag:search.twitter.com,2005:1990561514 

很明顯,search.twitter.com是您請求文檔的URL。

2005年是不變的。據我所知,自服務推出以來,它一直沒有改變。雖然沒有官方文檔,我猜想,這指的是ATOM規範命名空間 - http://www.w3.org/2005/Atom

最後,長數爲鳴叫的狀態ID將永遠是獨一無二的,可用於since_id

你需要做的是拆分字符串,並使用冒號後的數字作爲你的ID。

+0

感謝你的回覆。你想添加到你的答案你從哪裏得到這些信息?謝謝。 – nunos

+1

我剛纔看了一下ATOM feed的來源。您可以通過將其插回到Twitter中來看到長號碼是唯一ID。 https://twitter.com/x/status/1990561514 –

0

我相信你做錯了什麼。如果您查看Twitter搜索API的所有示例結果,則沒有任何id字段的格式與您要展示的一樣。

例如:

http://search.twitter.com/search.json?q=%40twitterapi%20-via

此外,如果你看看example requests page,你會看到,所有的ID字段具有正常的格式,即:

"id":122032448266698752 

更新:

現在我知道你正在使用原子提要,我可以看到看似奇怪格式的元素來自哪裏。請參閱this article,以避免原子提要中出現重複。 Another helpful article

基本上,atom feed需要一個feed中每個元素的唯一id。有些Feed使用「標籤」方案來確保唯一性。這種格式在atom feed中實際上很常見,許多框架默認使用它。舉例來說,回報率AtomFeedHelper(甚至可能是什麼Twitter使用)指定默認格式爲:

"tag:#{request.host},#{options}:#{request.fullpath.split(".")}" 
+0

感謝您的回覆,但是,我使用**原子**格式的Twitter搜索API,'http://search.twitter.com/search.atom?q =',而不是** json **。 – nunos

+0

嗯..我更新了我的回覆 –