在查询/ notes / notebooks

时间:2016-02-11 18:16:06

标签: onenote-api

我的代码调用OneNote API来检索O365 SharePoint网站中的笔记本列表。我们获得一个持有者令牌,设置HTTP身份验证头并向:发出GET请求:

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 - 这是今天的一个:

X-CorrelationId: dbcff391-6767-451c-a011-05fb8d2a0e32

解析网址的FromUrl API调用 - > SharePoint SiteId,我们现在制作一次并缓存很长一段时间,因为该映射几乎是静态的。然而,站点中的笔记本可以在用户创建/删除/重命名时经常更改,因此我们每次都需要获取新数据。 OneNote API根本不稳定吗?

编辑

我们已经注意到,可能是用户的OneDrive for Business的可用性。我相信这些OneDrives是幕后的SharePoint文档库,在用户首次访问时按需创建。对于以前从未访问过OneDrive的用户,我们似乎得到了500个响应,但对于拥有该用户的用户来说却是成功的。从表面上看,这似乎很清楚:用户必须在OneNote API调用之前访问过OneDrive,否则返回500.

然而,租约之间似乎不一致:我们有一个O365租赁,但事实并非如此,即使用户没有OneDrive,API也会成功返回。所以我的问题是:1)用户OneDrive的可用性是否会产生影响,2)为什么租约之间会有所不同?

编辑#2 这已得到Microsoft开发人员支持升级工程师的确认 - API要求用户已拥有OneDrive。这是一个错误,因为API调用应该将OneNotes列在外部SharePoint文档库中,因此不应该关心用户是否为其配置了OneDrive。我知道这是积压的,他们要修理......

1 个答案:

答案 0 :(得分:0)

Make sure that the site that you are using in the API call is still valid (you can do this by running a FromUrl call on this site URL and cross check the site collection and site ids returned from that with the ids you are using). Also, make sure that the user you are calling the API for has permissions to this site.