2014-07-10 138 views
0

我想通過其他API收集一系列消息,並且知道您一次只能檢索20個結果。我已經嘗試增加一個頁面變量,但這沒有任何影響,並且每次無論頁碼(https://www.yammer.com/api/v1/messages.json?page=6)我都會得到相同的結果。我已經開始使用newer_than和older_than參數來遍歷結果,並且它在某種程度上起作用,但它似乎排除了記錄。我正在使用下面的方法:Yammer API - 尋呼

由於只是設置一個newer_than只會導致最近20條記錄,只要它們比在newer_than參數中發送的id更新,我還會設置一個動態的old_than參數。

  1. 發送請求只有一個比參數更新。這將返回最近的20條記錄。 (例如,ww.yammer.com/api/v1/messages.json?newer_than=235560157)
  2. 在JSON中提取第20個ID的ID,並使用它填充older_than參數。結果是20個不同的記錄。 (eg.ww.yammer.com/api/v1/messages.json?newer_than=235560157 & older_than = 405598096)
  3. 重複步驟2,直到沒有結果返回,因爲newer_than和older_than參數最終會重疊。

問題是,使用此方法返回的記錄集小於從數據導出API返回的消息的記錄數。我正在假設新的消息ID始終生成的值大於任何較舊的消息。

我可能會誤解如何通過結果分頁應該用REST API實現嗎?

任何幫助將不勝感激!

在此先感謝!

+0

這對我來說似乎很好。您錯過的消息中,您注意到了哪種模式?他們是否在你的更新/更老的邊界的一邊,連續地,隨機地穿過範圍,......? – siger

+0

看起來這些值更接近光譜的較新一側,但結果是隨機丟失的記錄。似乎沒有這樣的模式。在一個樣本集中,大約有180個記錄中的75個偶爾缺失。是否有可能從數據導出API中刪除某些類型的消息,而這些消息無法通過REST API訪問?或者我可能缺少一些參數來提取一整套消息? – NickFujita

+0

我也注意到這些頁面會在一段時間後停止發佈,並且似乎僅限於2.5-3個月左右。您能否確認您也看到過相同的情況,或者知道可以使用REST API拖入的歷史消息數據量的限制? – NickFujita

回答

0

數據導出包括私人消息。私人消息不會被該API調用返回。

檢查您沒有看到的消息是否是私人消息。

+0

嗨凱爾!謝謝回覆。我檢查了我們從數據導出API中獲得的數據,並且仍然看到從REST API獲取的數據集中丟失的消息,儘管消息數據導出字段'in_private_group'和'in_private_conversion'被標記爲假。 – NickFujita

1

首先,頁面參數只適用於搜索API。

其次,您嘗試獲取消息的方式不會返回任何消息評論,也不會返回基於「extended」參數的任何消息的前2條評論。默認情況下,它會在每封郵件中返回2條評論要獲得關於該消息的所有評論,您將不得不單獨獲取消息。

這必須導致上述兩種方法中消息數量的差異。

+0

嗨Farhaan,謝謝你的迴應!在查看文檔中的Threaded字段後,看起來您是正確的! threaded = [true |擴展] - threaded = true將只返回每個線程中的第一條消息。此參數適用於顯示消息線程摺疊的應用程序。 threaded = extended將按照最近活動的順序以及最近兩條消息的順序返回線程啓動器消息,因爲它們在Yammer Web界面的默認視圖中查看。 – NickFujita

+0

你剛纔提到過,如果我需要獲得關於該消息的所有評論,我將不得不單獨獲取它。你有沒有想法?有沒有一種方法可以指定線程中的第一條消息,並讓它返回所有註釋?或者有沒有辦法通過ID(或通過ID批量)專門調用消息? – NickFujita

1

我同意Farhann - 其餘的API端點默認只返回任何消息的前兩個註釋。要獲得對帖子的所有評論,您必須提出一個單獨的請求。

通過使用Data Export API,還可以導出所有評論以及消息(公共和私人),從而增加消息數量。而API調用默認只對任何消息返回最近的2條評論。

+0

嗨瑞安,謝謝你的回覆!你有什麼具體的要求,想要獲得一篇文章的所有評論?我需要從REST API中獲取類似信息和內容類型信息,這些信息在數據導出API中不可用。 – NickFujita