商業資料API相關問題
商業資料API相關問題
1、搜尋最近資料介面:search/statuses/limited
(1)使用相同的參數呼叫介面有時可以回傳數據,有時報錯,數據不穩定?
為了確保線上服務的回應速度,並降低伺服器的負載,存取下游服務的時候,超時設定的比較嚴格,為500ms,如果下游500ms沒有返回,則存取失敗。如果要解決這個問題,建議呼叫時加入重試機制。
(2)使用相同的參數請求介面兩次,兩次回傳的資料結果不一樣?
兩次搜尋資料量不一樣,這個屬於正常的範疇。搜尋微博的檢索策略、前端過濾策略、敏感詞的數量以及資料庫中微博本身的數量都是動態變化的,QA在測試的時候,線下環境與線上環境做diff,基本上不超過5%就認為是正常。
(3)關鍵字一樣,只有sort排序不一樣,每次回傳的資料量總數有很大差異?
線上的後端伺服器分為兩組,一組用於統一搜索,返回資料類型比較豐富(精選、文章、點評、使用者等),另一組用於商業數據,只回傳微博數據。不同的參數值對應的索引庫會有差異。另外,sort參數值fwnum、cmtnum、hot都只對近期原創微博有效,但是time卻無限制,所以這三個參數在返回時會有區別的,而且time與另外的區別很大。
(4)以天為週期查詢某關鍵字,30天的微博數量不等於以月為週期的微博數量?
超過1000條結果的搜索,返回的數量並不是實際數量,而是估算的數量,這個估算是不受過濾策略影響的。
(5)有時某一頁傳回的資料會小於「count」指定的數量?
count是指每頁返回的數量,例如設定為10條,當顯示8條時是因為那兩條被過濾掉了,再次訪問又變成10條了,是因為索引資料庫是動態的,它會將過濾掉的資訊擠到下一頁或之後的頁面。
(6)每頁回傳的微博數量總和與total_number不一致?
實際回傳的結果數與total_num不符,這個現像是正常的。原因是索引中的數據都是入庫時的原始數據,後端會返回命中的微博,但是前段會根據微博的實時狀態進行過濾,比如有些微博被刪除、命中敏感詞、用戶被封等。
(7)搜尋某關鍵字時,某省的微博數量與其下面的地市微博數量總和不相等?
搜尋的資料都來自於平台,當使用者指定某個省或城市的微博時,會根據一些標誌位來判斷微博是否是使用者要求的省或城市,具體的的原因是:細粒度的城市與粗粒度的省份之間沒有對應起來,比如搜索河北的微博,標記為河北的都會被搜索到,但是搜索石家莊,標記為河北的也會被搜索到。
(8) 如何使用時間參數,盡量搜到最全資料?
結束時間參數的值指定為目前時間,起始時間無需指定,將依時間倒序分頁傳回1000條微博,再將第1000條微博的建立時間作為結束時間參數的值,起始時間無需指定,依序遞推。
(9)呼叫介面報錯,回傳403,403報錯是什麼原因?
403錯誤是沒有登陸或超過頻率限製或超過發布上限。
(10)搜尋某個關鍵字最多回傳多少條?
在某個時間區間內,搜尋某個關鍵字,分頁返回,每頁最多返回50條,最多可以翻20頁,即最多返回1000條。
(11)對於轉送微博,若只是原創內容包含指定關鍵字,而轉送不包含,能被搜到嗎?
不能。對於轉發微博,檢索部分只是轉發內容部分,且不包含微博作者名稱、表情符號、轉發暱稱。
2、傳回一微博的全部轉送微博列表介面:statuses/repost_timeline/all
(1)對於多層級轉送微博呼叫該介面時的回傳資訊是怎樣的?
這個介面是回傳一條微博的全部轉發微博列表,包括多層轉發的,例如A被B轉發,B又被C轉發,C又被D轉發,對A調用此API接口,返回的轉發數是B、C、D,這三個層級都包括,同理,對B調用此接口,C和D分別是其一級和二級,但是在返回數據時返回的是API上顯示的若干輸出參數,沒有層級的區分。
(2)呼叫介面時無法取得某條微博的全部轉送微博?
轉送列表介面是傳回一條微博所有轉送的列表,但結果是會過濾無效使用者的。如果轉發微博的用戶是凍結狀態與未啟動狀態,用戶轉發的微博都無法顯示。
3、粉絲服務平台中微博帳號與應用程式之間的對應關係、對應的安全機制是怎麼樣?
粉絲服務平台目前只支援一個應用程式綁定一個推送位址,不支援綁定多個,粉絲服務平台在首次接入呼叫的時候,會進行一次驗證操作,具體參考:http://open. weibo.com/wiki/Messages_api_start.
4、開發者如何操作可以避免頻率限制?
確定哪些需要定時存取的接口,每個接口做一個優先級,訪問的頻率做為一個變量; 計算下一定要訪問的接口數據量; 保留給用戶一定的更新(發微博,私訊等) ;使用Account/rate_limit_status查看目前appkey所能支援的每小時的最大訪問量,根據此訪問量來確定頻率的值。
5、沒有單一微博詳細頁的url,怎麼拼接單一微博的網頁版網址?
在程式中取得使用者的uid,呼叫statuses/querymid取得使用者的MID,拼接成http://weibo.com/uid/mid, 如UID=12345,mid=abcde,則網頁版網址為:http://weibo.com/12345/abcde。