2011-04-21 44 views
0

我知道肯定是我還是大家,我有下面的代碼怪異Twitter的API行爲

http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=barbara_volkwyn

http://api.twitter.com/1/statuses/user_timeline.xml?user_id=248623669

顯然,根據Twitter的API,與SCREEN_NAME = 「barbara_volkwyn」 用戶具有但是,當我運行上面的API調用時,我得到完全不同的結果,有一件事情甚至更加怪異:如果我嘗試運行第二個API調用,包含在返回結果中的users對象甚至不是同一個用戶。

我想知道任何人都有同樣的問題,請隨時試一試。

問候, 安迪。

+1

你從哪裏獲得用戶ID?我得到這一個,它的作品:http://api.twitter.com/1/statuses/user_timeline.xml?user_id=264882189 – 2011-04-21 17:34:10

+0

嗨托馬斯,我個人困惑的情況下.... – cherhan 2011-04-22 01:47:18

回答

0

通過搜索API報告的user_ids是不一樣的Twitter的REST API中使用的user_ids - 不確定的,如果這就是你找到的USER_ID 248623669與否雖然。

時間軸包含其又包含嵌入(但緩存)的用戶對象,通常反映在鳴叫發表時的用戶的狀態的鳴叫。有時用戶更改其屏幕名稱,因此,名稱爲@barbara_volkwyn的用戶可能有一天是user_id 1234,第二天是user_id 5678,而屬於user_id 1234的tweets始終屬於user_id 1234,與screen_name無關。

的USER_ID爲@babara_volkwyn根據REST API是264882189.這是完全可能有人持相同的網名,但在其他時間不同的USER_ID。確定Twitter用戶身份的唯一方法是通過其REST API user_id來引用它們 - screen_names是暫時的,並且可以隨時由最終用戶修改。

正如我所提到的,狀態中使用能夠成爲陳舊緩存用戶對象 - 有關單個用戶帳戶上的最新信息是最可靠的源是用戶/顯示API方法。有關帳戶最近Tweets的最新信息的最可靠來源是狀態/ user_timeline方法。

嵌入的對象爲大多數情況下工作,但如果你正在尋找最高的準確度,在不同的資源是最好的。

謝謝,泰勒。

+0

嗨泰勒,我從流中搜索user_id或搜索API,我手動驗證user_id或screen_name的操作。這種情況就像這樣,例如我正在尋找一個關鍵字「fire」,所以它返回一個tweets列表,其中用戶發送關於「fire」的消息,並且tweet包含一個用戶對象,其中包含user-id和screen_name。使用user_id和user_timeline方法,我得到了一組完全不同的結果,但使用screen_name我得到了相同的結果,所以我想,用戶在10秒內更改其screen_name的情況並不是那麼有效? – cherhan 2011-04-22 01:45:21

+0

我從我看到的事實中很確定,在這種特殊情況下涉及到screen_name更改,並且由於以下幾個因素,您看到了混合結果:API中未過期的緩存(Tweet中的嵌入式用戶對象,在用戶對象中嵌入Tweets)以及Search API(相同大小寫,但在所有search.twitter.com結果中也是完全不同的用戶id方案 - 它們不對應)。屏幕名稱的更改通常需要一段時間才能完成。 – 2011-04-22 15:43:41