2016-02-11 112 views
0

我的代碼調用OneNote API以檢索O365 SharePoint網站中的筆記本列表。我們得到的承載標記,設置HTTP認證頭,併發出GET請求:OneNote API在查詢/筆記/筆記本時返回HTTP 500

https://www.onenote.com/api/v1.0/myOrganization/siteCollections/1165b017-ce4b-4b01-9e0c-d1ed91827b33/sites/99d8f75e-c7eb-4de1-a304-86f567c1ce99/notes/notebooks 

這通常工作,但昨天間歇返回HTTP 500響應,今天返回每次500響應:(

我們捕獲響應的所有HTTP頭,包括X-的correlationID - 這裏有一個從今天:

解析一個URL
X-CorrelationId: dbcff391-6767-451c-a011-05fb8d2a0e32 

的FromUrl API調用 - >的SharePoint SITEID,我們現在做一次緩存很長一段時間,因爲該映射幾乎是s tatic。然而,站點中的筆記本可能會隨着用戶創建/刪除/重命名而經常更改,因此我們需要每次都獲取最新的數據。 OneNote API從根本上不穩定?


編輯

我們注意到,這可能是該用戶的OneDrive爲企業的可用性。我相信這些OneDrives是SharePoint文檔庫,在用戶首次訪問時按需創建。對於以前從未訪問過OneDrive的用戶,我們似乎獲得了500條回覆,但對於擁有此類用戶的用戶來說,這是成功的。從表面上看,這似乎很清楚:用戶必須在OneNote API調用之前訪問過他們的OneDrive,否則它將返回500.

但是,這在租約之間似乎不一致:我們有一個O365租約,不是這種情況,即使用戶沒有OneDrive,API也會成功返回。所以我的問題是:1)用戶的OneDrive的可用性是否有所不同?2)爲什麼租戶之間會有所不同?


編輯#2 這已被證實由微軟開發的支持上報工程師 - 該API需要用戶已經擁有了OneDrive。這是一個錯誤,因爲API調用應將OneNotes列在外部SharePoint文檔庫中,因此不應關心用戶是否爲其調配了OneDrive。我知道他們正在積壓修復...

回答

0

請確保您在API調用中使用的站點仍然有效(您可以通過在此站點URL上運行FromUrl調用並跨越使用您使用的ID檢查網站集和網站ID)。另外,請確保您要調用該API的用戶對該站點擁有訪問權限。

+0

SiteId和SiteCollectionId都很好 - 調用之間沒有任何變化。 –

相關問題