2016-10-03 128 views
1

這與OneNote pages API doesn't return pages in section-groups類似的問題。Onenote不返回頁面

我正在使用獲取部分並獲取部分頁面的部分展開以獲取筆記本中所有頁面的名稱。但是,始終使用相同的請求,部分組中的部分有時會消失,並且在重新創建組之前不會再出現。

這是一個可以以某種方式解決問題的缺陷,或者有更好的方法來輪詢特定筆記本中的所有頁面名稱嗎?頁面需要按順序排列。

+0

+1似乎API不工作,但dev.onenote.com返回正確的結果。只需計入0和空值 –

+0

您好Walliski,OneNote API團隊收到您的電子郵件,我已被分配來幫助您解決您的問題。我正在深入瞭解您發送給我們的請求的日誌,我會看看我能否診斷該錯誤。 只是澄清一下,你說的「節組中的節......在再現**組之前不會再出現」是什麼意思? –

+0

重新創建我的意思是創建一個名爲「temp」的新節組,然後將所有節移到新節組中,最後刪除「破」節。 – Walliski

回答

0

如果您嘗試獲取筆記本的所有頁面名稱,則通過使用OData嵌套過濾器來解決問題。這個想法是查詢所有頁面,$expandparentNotebook,然後$filteridparentNotebook。以下是一個示例網址。

GET ~/pages?$expand=parentNotebook&$filter=parentNotebook/id%20eq%20'{$notebook_id_here}'

這裏是另一個SO問題,如果有人採用類似的模式:Best way to use One Note API to GET specific pages in specific section in specific notebook?

更新:

可以使用的OData的$orderby並指定屬性控制返回的頁面順序存在於返回實體集中的實體上(在這種情況下,實體是頁面)。來自dev.onenote.com:「默認[順序]是lastModifiedTime desc(最近修改頁面先)」。

https://dev.onenote.com/docs#/reference/get-pages下有一個「頁面屬性」部分,它顯示了此調用返回的所有屬性。由於我們正在將所有頁面都提供給筆記本中​​存在的用戶,因此我們可以使用的唯一屬性是不幸的createdTime

的查詢參數添加貌似$orderby=createdTime

在全:

GET ~/pages?$expand=parentNotebook&$filter=parentNotebook/id%20eq%20'{$notebook_id_here}&$orderby=createdTime

我只是測試這個使用招對我自己的網頁,所以我認爲它應該工作。好的是它是一個單一的請求。

GET https://www.onenote.com/api/v1.0/me/notes/pages?$expand=parentNotebook&$filter=parentNotebook/id%20eq%20'{$YOUR_NOTEBOOK_ID_HERE}'&$orderby=createdTime

+0

如果我這樣做,網頁上是否有「訂單」,所以我知道它們是如何訂購的? – Walliski

+0

我已編輯答案以迴應您的評論。 –

+0

應該可能指定它更好。對於「order」,我的意思是可以從這裏獲得的「pagelevel」參數:https://dev.onenote.com/docs#/reference/get-pages。 如果那個也可用,這可能是一個替代方案。我得看看它,謝謝! – Walliski